[英]C# Combo box events
目前,我正在用C#編寫一個小型應用程序,該應用程序要求用戶使用組合框選擇一個對象,然后用戶可以從下面編輯該對象的屬性,然后將其保存到數據庫中。
我在嘗試詢問用戶在再次單擊組合框時是否要取消但有要保存的更改時遇到了問題。
最好的是,但用戶仍然可以使用鍵盤選擇項目,即使下拉高度表示他們看不到這些選項。
private void cmbBooks_DropDown( object sender, EventArgs e )
{
if ( CheckSave( ) ) //checksave returns true if they want to cancel
{
cmbBooks.DropDownHeight = 1;
}
}
謝謝
編輯我已經用SelectedIndexChanged事件進行了嘗試,從那里我可以停止繼續進行操作並打開該對象的框,但是組合框將繼續選擇他們嘗試選擇的對象,而組合框仍保持打開狀態?
檢查SelectedIndexChanged
事件。 如果用戶取消,則將SelectedIndex
屬性設置回較早的值。
供您評論
創建一個值為false的全局bool標志。 在SelectedIndexChanged event
檢查此值。
If it is true.
return from code
Else
continue with your code.
現在,當您設置先前選擇的索引屬性時,將此標志設置為true。 它將觸發SelectedIndexChanged event
但這一次是因為flag為true,所以它將從該事件返回。
在下一行中,設置標志= false。 如果您不再次將其設置為false,它將始終退出代碼。
bool flag = false;
private void mycombobox_SelectionIndexChanged(object sender, EventArgs e)
{
If (flag)
return;
//Your normal code.
If (Canceledbyuser == true)
{
flag = true;
mucomboBox.SelectedIndex = previousindex;
flag = false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.