我在使用VisualStudio 2010 C#Winforms时遇到了一些麻烦.
我创建了一个DataGridView,其中包含一个类型为DataGridViewComboBoxColumn的未绑定列.该列工作正常,除了与普通的ComboBox不同,我似乎无法输入任何值.我被迫从列表中选择一个值.
是否有我需要设置的属性或我可以使用的其他类型,除了提供从中选择值的列表之外,还允许我在单元格中输入任何值?
谢谢!
Jef*_*ata 12
我不认为有一个属性允许这个,但我在这里找到了一个小修改的答案.
尝试添加以下2个事件处理程序,此处假设一个名为的列comboBoxColumn:
private void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
ComboBox c = e.Control as ComboBox;
if (c != null) c.DropDownStyle = ComboBoxStyle.DropDown;
}
private void dataGridView1_CellValidating(object sender,
DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == comboBoxColumn.Index)
{
object eFV = e.FormattedValue;
if (!comboBoxColumn.Items.Contains(eFV))
{
comboBoxColumn.Items.Add(eFV);
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = eFV;
}
}
}
Run Code Online (Sandbox Code Playgroud)