在 ComboBox 中输入关键问题,AutoCompleteMode 设置为 Append
Enter Key Issue In ComboBox with AutoCompleteMode set to Append
在 AutoCompleteMode
设置为 Append
的 ComboBox
中打开下拉菜单时,按 Enter 键清除 ComboBox
的文本].
我们知道在 widows 表单中,当 ComboBox
中的 AutocompleteMode
属性 设置为 Append
时,我们在键入完整文本之前获取值项目。
问题在这里:
- 我单击下拉按钮并打开下拉菜单
- 我尝试输入一些字符,我得到了预期的值并完成了文本。
- 但是当我按下 Enter 时,它删除了组合框的文本。
我怎样才能拥有 Append
选项并在下拉菜单打开时按 Enter,保留输入的文本而不删除它。
我尝试了 "Auto complete Mode" 属性 中的 None 选项,它工作正常,但没有附加数据....
我不需要 "Auto complete Mode" 属性 中的建议和建议附加选项,因为它会打开另一个下拉菜单 window...
我需要在列出下拉框中的数据时键入数据,当我通过单击输入按钮获取附加值时它应该可以工作(不会被删除)...
这可能吗?
谢谢
当下拉菜单关闭时,它按预期工作,但当下拉菜单打开时,按 Enter 会关闭下拉菜单并删除输入的文本。
作为解决方案,您可以从 ComboBox
派生并以这种方式覆盖 IsInputKey
:
public class MyComboBox : ComboBox
{
protected override bool IsInputKey(Keys keyData)
{
switch ((keyData & (Keys.Alt | Keys.KeyCode)))
{
case Keys.Enter:
case Keys.Escape:
if (this.DroppedDown)
{
this.DroppedDown = false;
return false;
}
break;
}
return base.IsInputKey(keyData);
}
}
在vb.NET中,您必须在事件keydown
中进行:
Private Sub ComboBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles ComboBox2.KeyDown
If e.KeyCode = Keys.Enter Then TextBox7.Focus()
End Sub
在 AutoCompleteMode
设置为 Append
的 ComboBox
中打开下拉菜单时,按 Enter 键清除 ComboBox
的文本].
我们知道在 widows 表单中,当 ComboBox
中的 AutocompleteMode
属性 设置为 Append
时,我们在键入完整文本之前获取值项目。
问题在这里:
- 我单击下拉按钮并打开下拉菜单
- 我尝试输入一些字符,我得到了预期的值并完成了文本。
- 但是当我按下 Enter 时,它删除了组合框的文本。
我怎样才能拥有 Append
选项并在下拉菜单打开时按 Enter,保留输入的文本而不删除它。
我尝试了 "Auto complete Mode" 属性 中的 None 选项,它工作正常,但没有附加数据....
我不需要 "Auto complete Mode" 属性 中的建议和建议附加选项,因为它会打开另一个下拉菜单 window...
我需要在列出下拉框中的数据时键入数据,当我通过单击输入按钮获取附加值时它应该可以工作(不会被删除)...
这可能吗?
谢谢
当下拉菜单关闭时,它按预期工作,但当下拉菜单打开时,按 Enter 会关闭下拉菜单并删除输入的文本。
作为解决方案,您可以从 ComboBox
派生并以这种方式覆盖 IsInputKey
:
public class MyComboBox : ComboBox
{
protected override bool IsInputKey(Keys keyData)
{
switch ((keyData & (Keys.Alt | Keys.KeyCode)))
{
case Keys.Enter:
case Keys.Escape:
if (this.DroppedDown)
{
this.DroppedDown = false;
return false;
}
break;
}
return base.IsInputKey(keyData);
}
}
在vb.NET中,您必须在事件keydown
中进行:
Private Sub ComboBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles ComboBox2.KeyDown
If e.KeyCode = Keys.Enter Then TextBox7.Focus()
End Sub