Sae*_*ani 7 c# textbox autocomplete winforms
我有一个文本框,可以向仪器发送一些命令.我在此文本框中添加了自动完成功能,现在情况变得更加容易了.
我想要改进这一点,是为了增加一种可能性,当用户输入命令(只是一个文本)而AutoComplete找到匹配时,它也会显示该命令的描述.
目前,我在文本文件中包含所有AutoComplete字符串,并在应用程序启动时加载它.文本文件包含这样的行:
*IDN? #Query the instrument for identification
*RST #Resets the instrument
Run Code Online (Sandbox Code Playgroud)
所以在我的应用程序中发生的是因为AutoComplete处于SuggestAppend模式状态,命令的描述也会进入文本框(如果我只将它放在Suggest模式中,这将是相同的)
我需要知道的是如何强制AutoComplete追加文本
#在附加建议的文本时,不添加从char 开始的任何文本更新1
好吧,我认为唯一的方法是创建一个新类并继承自AutoCompleteStringCollectionAnd在这个新类中,以某种方式覆盖用于返回(追加)建议文本的reponsible方法.我真的不知道该怎么办:
class MyAutoCompleteCollection : AutoCompleteStringCollection
{
//How to override Get function of AutoCompleteStringCollection class?
//It is not avilable to override :(
}
Run Code Online (Sandbox Code Playgroud)
更新2
我发现方法AutoCompleteStringCollection不可覆盖.我正在寻找一种方法来改变方法的[]方式(说实话我不知道该怎么称呼它!)有效.有人对此有任何想法吗?

更新3 当没有#DESC的文本进入文本框时,我有一个KeyDown的事件处理程序,它将命令传送到仪器.
我强烈建议您使用多列组合框,而不是尝试与 Microsoft 实现的自动完成功能作斗争。
我们使用的所有命令都支持自动完成,因此您可以将命令存储在第一列中并将其作为您的值,然后将描述存储在第二列中。
有大量可供购买的控件(Infragistics、Intersoft、Syncfusion 等),您可能可以在 CodeProject 等各种网站上找到免费或自建版本。
走这条路线应该会节省你很多时间。
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |