[英]How do I Change comboBox.Text inside a comboBox.SelectedIndexChanged event?
[英]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.