2011-07-21 62 views
0

使用mysql我喂combobox2選擇combobox1.It工作正常。但問題是首先選擇似乎不觸發事件處理程序。第二次我做它會觸發。C#combobox選擇餵養另一個組合框

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { comboBox1.SelectedValueChanged += new EventHandler(comboBox1_selectedvaluechanged); }

private void comboBox1_selectedvaluechanged(object sender, EventArgs e) { region = comboBox1.SelectedItem.ToString(); values_to_venue(); db.connection.Close(); }

+0

我認爲你想使用的事件是ComboBox.SelectionChangeCommitted,因爲如果用戶使用鍵盤上的向上/向下箭頭導航DropDown列表,SelectedIndexChanged將在選擇提交之前觸發 - 是你想要的嗎? ??? – gangelo

回答

2

這是因爲你沒有創建事件處理程序,直到組合框改變的SelectedIndex。這與SelectedValue更改一起被解僱。在load方法中創建事件處理程序,確保在第一個SelectedValue更改時它在那裏。如果你把它放在Load中,確保在卸載時用 - =清理它。或者,你可以在構造函數中創建它,然後你不需要刪除它。

+1

你是對的。如果他不知道他必須做什麼:放上這一行:comboBox1.SelectedValueChanged + = new EventHandler(comboBox1_selectedvaluechanged);在加載表單 –

+0

的函數中,我將代碼從private void comboBox1_selectedIndexChanged移動到initializeComponent並且它可以工作。 –

0

你確實想在你的構造函數或加載方法中設置事件;另外,我想你要使用的事件是ComboBox.SelectionChangeCommitted,因爲如果用戶使用鍵盤上的向上/向下箭頭導航DropDown列表,SelectedIndexChanged將在選擇提交之前觸發 - 是你想要的嗎? ??

相關問題