[英]Executing an action only when I select an item form the combo box
我有一個ComboBox
,在表單的load事件中,它填充了數據。 現在當我從ComboBox
選擇一個Item表格時,它應該執行一些動作。 所以我知道在這種情況下可以使用的事件很少
SelectedIndexChanged
SelectedValueChanged
等等
但問題是,即使在設置ComboBox的DataSource
並在加載表單時選擇默認索引等時,也會引發這些事件。
ComboBox1.DataSource = dt;
ComboBox1.SelectedIndex = -1;
什么是我想要做的是,我只是想,當我 選擇一個項目形成組合框只執行一個動作。 在這種情況下是否可以使用鼠標事件?
comboBox.SelectionChangeCommitted
事件似乎就是這么做的。
否則,您可以在綁定數據源之前設置一個布爾值,您可以在事件中使用該數據源來忽略它。
private bool blnIgnoreEvent = false;
// in Form_load
blnIgnoreEvent = true;
ComboBox1.DataSource = dt;
blnIgnoreEvent = false;
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (!blnIgnoreEvent)
{
// go ahead
}
}
我不相信還有另一個事件可以更好地處理您想要做的事情。 綁定數據源時,XIVSolutions對事件觸發有一個簡潔的解決方法: 如何在綁定DataSource時阻止selectedindexchanged事件?
此外,由於SelectedIndexChanged
適用於所有情況,為什么不處理第一個?
if (ComboBox1.SelectedIndex == -1)
{
return;
}
如果-1對應於您希望能夠選擇的值,則只需使用私有字段來存儲您檢查的某個bool
,以確定它是否是第一次執行該操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.