我在VisualStudio 2010 C#Winforms中遇到了一些麻煩。DataGridViewComboBox - 如何允許任何值?
我創建了一個DataGridView,其中包含DataGridViewComboBoxColumn類型的未綁定列。該列工作正常,除了不像一個普通的ComboBox,我似乎無法輸入任何值。我不得不從列表中選擇一個值。
是否有一個屬性,我需要設置或另一種類型,我可以使用,這將允許我在單元格中輸入任何值,除了提供一個列表來選擇一個值?
謝謝!
我在VisualStudio 2010 C#Winforms中遇到了一些麻煩。DataGridViewComboBox - 如何允許任何值?
我創建了一個DataGridView,其中包含DataGridViewComboBoxColumn類型的未綁定列。該列工作正常,除了不像一個普通的ComboBox,我似乎無法輸入任何值。我不得不從列表中選擇一個值。
是否有一個屬性,我需要設置或另一種類型,我可以使用,這將允許我在單元格中輸入任何值,除了提供一個列表來選擇一個值?
謝謝!
我不覺得有什麼,讓這樣的屬性,但我找到了答案here與一個小的修改工作。
嘗試添加下列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;
}
}
}
DataGridViewComboBoxColumn被設計爲用於從可能值中進行選擇 - 而不是用於輸入數據。如果你想添加任何數據,你應該期望的DataGridViewComboBoxCell做編程:
((DataGridViewComboBoxCell)dataGridView1[0,0]).Items.AddRange(new string [] {"A","B","C"});
完美!謝謝! – 2010-11-22 14:40:46