簡體   English   中英

C#組合框事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM