gpt4 book ai didi

c# - 覆盖或重载自动完成追加规则

转载 作者:太空狗 更新时间:2023-10-29 20:40:19 25 4
gpt4 key购买 nike

我有一个文本框,可以向仪器发送一些命令。我向该文本框添加了自动完成功能,现在一切变得更容易了。

我想改进这一点的是增加一种可能性,即当用户输入命令(只是文本)时,自动完成会找到匹配项,它还会显示该命令的描述。

目前,我将所有自动完成字符串都放在一个文本文件中,并在应用程序启动时加载它。文本文件包含如下行:

*IDN?   #Query the instrument for identification
*RST #Resets the instrument

所以在我的应用程序中发生的事情是,因为自动完成处于 SuggestAppend 模式,命令的描述也会进入文本框(如果我只将它放在 中,这将是相同的)建议模式)

我需要知道的是如何强制 AutoComplete 在它的同时追加文本

  1. 在附加建议文本时不添加任何以 # 字符开头的文本
  2. Trim() 文本以避免您在文本文件源代码中看到的空格

更新 1好的,我认为唯一的方法是创建一个新类并从 AutoCompleteStringCollection 继承并且在这个新类中,以某种方式覆盖返回(附加)建议文本的负责方法。我真的不知道该怎么办:

class MyAutoCompleteCollection : AutoCompleteStringCollection 
{
//How to override Get function of AutoCompleteStringCollection class?
//It is not avilable to override :(
}

更新 2我发现 AutoCompleteStringCollection 中的方法不可覆盖。我正在寻找一种方法来改变 [] 方法(老实说,我不知道该怎么调用它!)的工作方式。有人对此有任何想法吗?

enter image description here

更新 3当没有#DESC 的文本进入文本框时,我有一个 KeyDown 事件处理程序,它将命令传输到仪器。

最佳答案

我强烈建议您改用多列组合框,而不是尝试与 Microsoft 实现的自动完成功能作斗争。

我们使用的所有这些都支持自动完成,因此您可以将您的命令存储在第一列中并将其作为您的值,然后将您的描述存储在第二列中。

有大量控件可供购买(Infragistics、Intersoft、Syncfusion 等),您可能可以在各种网站(如 CodeProject)上找到免费或自行构建的版本。

走这条路应该可以为您节省很多时间。

关于c# - 覆盖或重载自动完成追加规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com