フォームがロードされたときに、データテーブルからいくつかのキー/値をコンボボックスに入力したいと思います。また、ユーザーがコンボボックスで選択を行うと、SelectedValueChanged イベントでいくつかのステートメントが実行されることを期待してください。
ただし、次を使用してデータを入力する場合:
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Rows.Add(1, "A1");
dt.Rows.Add(2, "A2");
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "name";
comboBox1.ValueMember = "id";
}
次の SelectedValueChanged イベントで:
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
MessageBox.Show("FOO");
}
プログラムが実行されると、ユーザーが何かを選択する前に、"foo" メッセージ ボックスが予期せず 2 回表示されます。
何が問題ですか?
どうも