我想创建一个 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/