簡體   English   中英

DataGridViewComboBox - 如何允許任何值?

[英]DataGridViewComboBox - How to allow any value?

我在使用VisualStudio 2010 C#Winforms時遇到了一些麻煩。

我創建了一個DataGridView,其中包含一個類型為DataGridViewComboBoxColumn的未綁定列。 該列工作正常,除了與普通的ComboBox不同,我似乎無法輸入任何值。 我被迫從列表中選擇一個值。

是否有我需要設置的屬性或我可以使用的其他類型,除了提供從中選擇值的列表之外,還允許我在單元格中輸入任何值?

謝謝!

我不認為有一個屬性允許這個,但我在這里找到了一個小修改的答案。

嘗試添加以下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"});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM