我想阻止任何自动完成的痕迹发生在我的组合框。
是否有可能阻止Windows窗体ComboBox对象自动完成?现在,当我键入某个内容的前三个字符并单击另一个ComboBox以在新字段中键入内容时,第一个ComboBox不会更改并保留这三个键入的字母。但是,如果我调整窗体的大小,则它会尝试自动完成ComboBox(如果有匹配的记录以我键入的文本开始)。另外,ComboBox的this恰好是Anchored: Left, Right
。我有一种不好的感觉,停止此行为的唯一方法是将ComboBox子类化,并在resize事件或其他事件中执行一些操作...:/
以下是我认为处理自动完成的唯一属性的设置... x1c 0d1x
注意:当我单击右侧的三个点时,AutoCompleteCustomSource中的“Collection”列表为空。
重现此问题:
1.创建一个窗体并在其上放置一个标准ComboBox控件。然后在其正下方放置另一个ComboBox控件。您不会对第二个ComboBox控件执行任何操作(在本示例中,仅用于使用Tab键定位到第二个控件)。
1.在ComboBox属性中找到Items集合并添加以下内容...
- 测试123
- blah 321蛋白
- 足杆
1.在ComboBox属性中,找到Anchor
属性并将其更改为Left, Right
。
1.执行应用程序。
1.测试1:在ComboBox中键入bl
,然后按Tab键转到下一个ComboBox。您不会看到任何变化。
1.测试2:在ComboBox中输入bl
,然后拖动窗体的右边使其变宽,从而调整窗体的大小。您将看到ComboBox现在已经自动填充了blah321
。
1条答案
按热度按时间xn1cxnb41#
在https://stackoverflow.com/a/25696213/1039753找到了我要找的东西!
我想没有办法阻止它,除非子类化或做一个扩展类/方法来做它。我想我应该寻找“自动选择”的时候,我正在寻找的是“自动完成”。知道要搜索什么是关键!这段代码工作得很好,使用它你会做一些像...
我也没有看到任何性能影响。它看起来就像魔术一样。我稍微修改了那个答案的代码,添加了所需的结构。