【问题标题】:implementing autocomplete on datagridviewtextboxcolumn and datagridviewcomboboxcoumn在 datagridviewtextboxcolumn 和 datagridviewcomboboxcoumn 上实现自动完成
【发布时间】:2012-11-25 21:41:20
【问题描述】:

我有一个 datagridview 有多个列,我想在两列上实现自动完成。这些列是 datagridviewtextboxcolumn 和 datagridviewcomboboxcolumns。我在想自动完成可以在 datagridview 的 editcontrolshowing 事件中完成(我的代码中有),但我似乎无法弄清楚它是如何工作的。

 private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        if (dataGridView1.CurrentCell.ColumnIndex == 0 && e.Control is ComboBox)
        {
            ComboBox comboBox = e.Control as ComboBox;
            comboBox.AutoCompleteMode = AutoCompleteMode.Suggest;
            comboBox.AutoCompleteSource = AutoCompleteSource.ListItems;
            comboBox.TextChanged += LastColumnComboSelectionChanged;
        }
        if (dataGridView1.CurrentCell.ColumnIndex == 2 && e.Control is TextBox)
        {
            if (e.Control.Enabled)
            {
                TextBox POCText = e.Control as TextBox;

                POCText.MouseDoubleClick += new MouseEventHandler(POCText_MouseDoubleClick);
            }
        }
    }

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    您走在正确的道路上,如果您正在开发 win-form 应用程序,您必须根据您的数据源选择 AutoCompleteSource,主要是我们有表格、数组或其他东西,在这种情况下,我们应该使用 AutoCompleteSource = AutoCompleteSource.CustomSource。

    分配 AutoCompleteCustomeSource 后,您不需要实现任何其他事件来显示自动完成列表,.Net 自行管理,这是一个链接,与此处提出的问题相同,解决方案很好,我已经尝试过了,它正在工作。

    http://social.msdn.microsoft.com/Forums/en-US/winformsapplications/thread/30b5e4dc-5ecd-488e-9381-a7085e99b3a7/

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 1970-01-01
      • 2016-06-23
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 2013-01-28
      • 1970-01-01
      相关资源
      最近更新 更多