如何用DisplayStyle的ComboBoxList创建组合框单元格
本文关键字:创建组 组合 单元格 创建 ComboBoxList 何用 DisplayStyle | 更新日期: 2023-09-27 18:18:01
我有datagridview和列与单元格DataGridViewComboboxCell。DisplayStyle设置为none。当我开始在这个单元格中输入时,将其样式更改为组合框。并且我无法提供我的test,因为cell search item是根据我提供的文本进行的。我想改变它的样式为组合框,因为它是在组合框。我有一个空字段,我可以输入我的文本。
谢谢
你可以这样尝试…
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并生成editingcontrolshow事件,并在其中编写以下代码:
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;
}
或者像这样
private string[] list;
private DataSet ds;
public frmMain()
{
InitializeComponent();
ds = this.GetDataSet("SELECT deptName from empDept", "empDept");
list = new string[ds.Tables[0].Rows.Count];
comboBox1.AutoCompleteCustomSource.AddRange(list);
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is ComboBox)
{
ComboBox cb = e.Control as ComboBox;
cb.DropDownStyle = ComboBoxStyle.DropDown;
}
}