簡體   English   中英

Winforms中的Keydown事件后如何使用combobox.Text

[英]How to use combobox.Text after Keydown event in Winforms

我正在使用一個沒有下拉菜單的組合框,僅接受文本輸入。 在Windows窗體上,我有一個確定按鈕,該按鈕調用使用combobox.Text屬性的函數。

問題是當用戶鍵入某些內容然后按Enter時,我想調用此函數。 我正在嘗試處理KeyDown事件(我已經嘗試了其他事件,其結果幾乎相同),但是在觸發后,我發現combobox.Text為null。 我希望這樣的事情可以理想地工作:

private void cbox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyValue == 13)
        {
            OK(cbox.Text); 
        }
    }  

為什么在KeyDown事件后擦除combobox.Text? 文本框不會發生相同的問題嗎? 我已經快要絕望了,但是我不想在程序中的每個表格上都替換這個框……請告知!

表單上是否有多個ComboBox? 該事件是針對cbox但您正在從cbo獲取文本結果。

我建議將您的代碼更改為此:

private void cbox_KeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
     {
          string result = cbox.Text;
     }
}

當按下Enter鍵時,由於設置了AutoCompleteMode,ComboBox會清除事件發生前的Text。

只需將其更改為無即可。

cbox.AutoCompleteMode = AutoCompleteMode.None;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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