c# - 像 ajax 标记完成一样工作的 Winforms 控件

标签 c# .net winforms combobox tagging

我想创建一个 winforms 应用程序,您可以在其中为实体分配标签。 ofc 我希望客户大量重复使用现有标签。这就是为什么我想要 在他们打字时向他们显示标签列表(类似于智能感知 在 VS 中,标签下拉列表甚至在 stackoverflow 中也是如此 ;))

  • 您有没有想到提供此功能的控件?
  • 我可以为此重复使用 ComboBox 吗? (在这里我需要以编程方式将其放下 - 如何?)

我想让 taglist 获得输入焦点但又不失去主窗体焦点, 我希望它位于所有窗口的顶部,甚至超出主窗体区域 (就像 vs 中的智能感知)

谢谢!

最佳答案

在这里,我创建了一个函数,用于传递必须从中完成自动完成的表名、需要自动完成的字段名称以及需要定位的组合框。

试试下面的代码:

public void AutoCompleteTextBox(string tableName, string fieldName, ComboBox combToAutoComp)
        {
            AutoCompleteStringCollection txtCollection = new AutoCompleteStringCollection();
            DataTable dtAutoComp = Dal.ExecuteDataSetBySelect("Stored_Procedure", fieldName, tableName);
            if (dtAutoComp.Rows.Count >= 0)
            {
                for (int count = 0; count < dtAutoComp.Rows.Count; count++)
                {
                    txtCollection.Add(dtAutoComp.Rows[count][fieldName].ToString());
                }
            }
            combToAutoComp.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            combToAutoComp.AutoCompleteSource = AutoCompleteSource.CustomSource;
            combToAutoComp.AutoCompleteCustomSource = txtCollection;
        }

这里 Dal.ExecuteDataSetBySelect 是我的实现,我在其中创建连接、命令和数据适配器以调用存储过程。您可以将其替换为您自己的实现。更多请引用this link

关于c# - 像 ajax 标记完成一样工作的 Winforms 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2415642/

相关文章:

c# - 不使用 LINQ 转换对象列表

c# - 你如何在 C# 中连接列表?

c# - 在 C#/.NET 中强制 CRLF 的快速方法是什么?

c# - 使两个窗体控件随窗口均匀调整大小

c# - 在 winforms 中带有复选框的组合框

c# - 重点加强。我做对了吗?

c# - 分组 : for comprehensions in scala vs .net linq

c# - 如何在 Windows 服务中托管简单的 ASP.NET Web 界面

c# - 设计时 Form 的自定义可浏览属性

c# - 如何获得退格键 - 文本框中只有数字限制?