2012-07-16 6 views
8

私のアプリケーションでComboBoxの値を取得してから、ユーザーが選択した値を設定するか、以前に選択した値を取得するようにします。ComboBoxの以前の値を取得する

私のフォームの中には4つのリストと(リストのすべての値を含む)ComboBoxがあり、ComboBoxの値を取り込んでから削除したリストに戻したい他の/同じリストから新しく選択された項目。

答えて

16

ComboBox.Enterイベントを処理します。次に、SelectedItemまたはSelectedValueをメンバー変数に保存します。そのときはいつでも、その値をComboBoxに再度割り当てることができます。

イベントに登録してください。これは次の2つの方法のいずれかを行うことができます。

デザイナーがやります。コンボボックスを選択します。 [プロパティ]ウィンドウで、すべてのイベントを表示するには、稲妻アイコンをクリックします。次に "Enter"を探し、ボックスをダブルクリックします。自動的にコールバック関数(「イベントハンドラ」)が生成され、イベントに配線されます。

enter image description here

enter image description here

あなたがプログラム的に同じことを行うことができます。コンストラクタでは、正しい署名のイベントハンドラをフックアップ:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     comboBox1.Enter += comboBox1_Enter; 
    } 

    private void comboBox1_Enter(object sender, EventArgs e) 
    { 
     m_cb1PrevVal = comboBox1.SelectedValue; 
    } 

    private void RestoreOldValue() 
    { 
     comboBox1.SelectedValue = m_cb1PrevVal; 
    } 
} 
+1

大丈夫、ああ、最後に私はそれらを管理する方法を学習する必要がありますので... – smsware

+0

は正確に、何を管理しますか? –

+0

イベント、それらを実際に使ったことはありません...恐ろしいようです:) – smsware

関連する問題