3

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

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

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

谢谢!

4

1 回答 1

1

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

试试下面的代码:

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是我的实现,我在其中创建用于调用存储过程的连接、命令和数据适配器。您可以将其替换为您自己的实现。有关更多信息,请参阅此链接

于 2010-03-10T09:18:57.830 回答