如何在DataGridView中建议附加ComboBox?
我在c#
Windows窗体应用程序中有一个ComboBox
,我将AutoCompleteMode
设置为SuggestAppend
,文本自动附加到输入(图1)。
但是如果我在DataGridView ComboBox
中将AutoCompleteMode
设置为SuggestAppend
,则它不会附加文本(图2)。
如何在datagridviewcombobox中启用SuggestAppend
?
图。1 :
图2:
你会认为你就像普通的ComboBox
:
this.comboBox1.AutoCompleteCustomSource = new AutoCompleteStringCollection(); this.comboBox1.AutoCompleteCustomSource.AddRange(new string[] { "Good night", "Good evening", "Good", "All Good", "I'm Good" }); this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; this.comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
随着期待的结果:
事实certificate,你可以! 但是一旦离开单元格 ,所选选项将不会保留 。 我发现你必须改变你添加下拉选项的方式以及你如何获取它们:
public Form1() { InitializeComponent(); DataGridViewComboBoxColumn cc = new DataGridViewComboBoxColumn(); cc.Name = "Combo"; cc.Items.AddRange(new string[] { "Good night", "Good evening", "Good", "All Good", "I'm Good" }); this.dataGridView1.Columns.Add(cc); } private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { ComboBox box = e.Control as ComboBox; if (box != null) { box.DropDownStyle = ComboBoxStyle.DropDown; box.AutoCompleteSource = AutoCompleteSource.ListItems; box.AutoCompleteMode = AutoCompleteMode.SuggestAppend; } }
这将为您提供所需的结果:
以下是如何在Windows应用程序中的DataGridView中使用AutoComplete ComboBox的快速示例。
创建一个Windows应用程序并从工具箱添加DataGridView进行设计。 现在创建两个DataGridViewComboBoxColumns并将它们添加到DataGridView:
public void ComboList1() { DataGridViewComboBoxColumn combo1 = new DataGridViewComboBoxColumn(); combo1.HeaderText = "Country"; combo1.Items.Add("Antarctica"); combo1.Items.Add("Belgium"); combo1.Items.Add("Canada"); combo1.Items.Add("Finland"); combo1.Items.Add("Albania"); combo1.Items.Add("India"); combo1.Items.Add("Barbados"); dataGridView1.Columns.Add(combo1); } public void ComboList2() { DataGridViewComboBoxColumn combo2 = new DataGridViewComboBoxColumn(); combo2.HeaderText = "Types of Jobs"; combo2.Items.Add("Accounting"); combo2.Items.Add("HR"); combo2.Items.Add("Finance"); combo2.Items.Add("Transportation"); combo2.Items.Add("Testing"); dataGridView1.Columns.Add(combo2); }
从Form Constructor中调用这两个方法。
现在单击DataGridView并生成EditingControlShowing事件并在其中编写以下代码:
if (e.Control is DataGridViewComboBoxEditingControl) { ((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown; ((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems; ((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; }
这适用于DataGridView中存在的所有combobox。
来自这篇文章 。