按下 Enter 键,当foreach (var item in actionEvent.Colors.Cast<object>()
.Concat(actionEvent.Links.Cast<object>())
.Concat(actionEvent.Texts.Cast<object>())
UpdateComponent(item.ComponentId, item);
的{{1}}设置为ComboBox
时,下拉列表将会清除ComboBox
的文字。
我们知道,当AutoCompleteMode
中的Append
属性设置为AutocompleteMode
时,在widows表单中,我们会在输入项目的完整文本之前获取值。
问题出在这里:
如何选择ComboBox
选项,并在下拉列表打开时按 Enter ,保留输入的文字,不要将其删除。
我在“自动完成模式”属性中尝试了“无”选项,但它没有正常工作,但没有数据附加....
我不需要建议并建议在“自动完成模式”属性中附加选项,因为它会打开另一个下拉窗口....
我需要在列出下拉框中的数据时键入数据,当我通过单击“输入”按钮获取附加值时它应该起作用(不会被删除)......
这可能吗?
由于
答案 0 :(得分:3)
当下拉列表关闭时,它按预期工作,但当下拉列表打开时,按 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);
}
}
答案 1 :(得分:0)
在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