如何使用组合框.Winforms中Keydown事件后的文本
本文关键字:事件 文本 Keydown 何使用 组合 Winforms | 更新日期: 2023-09-27 18:19:49
我使用了一个没有下拉框的组合框,只接受文本输入。在windows窗体上,我有一个OK按钮,它调用一个使用组合框的函数。Text属性。
问题是,我想在用户键入内容然后点击ENTER时调用此函数。我正在尝试处理KeyDown事件(我尝试过其他结果几乎相同的事件),但我发现了组合框。触发后文本为null。我想要这样的东西理想地工作:
private void cbox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
OK(cbox.Text);
}
}
为什么是combobox。KeyDown事件后删除的文本?文本框不会出现同样的问题,对吧?我几乎已经绝望了,但我不想在程序中的每一张表格上都替换这个盒子,哈哈……请建议!
您的表单上有多个组合框吗?该事件是针对cbox
的,但您正在从cbo
获得文本结果。
我建议将您的代码更改为:
private void cbox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
{
string result = cbox.Text;
}
}
按下Enter键时,由于设置了自动完成模式,组合框会在事件发生之前清除文本。
只需将其更改为无。
cbox.AutoCompleteMode = AutoCompleteMode.None;