设置'空字符串'作为组合框项

本文关键字:组合 字符串 设置 | 更新日期: 2023-09-27 17:50:58

VS 2013: Winformsdatagridview的组合框列有一个值列表,即标签,重置,取消等…Datagridview绑定到从SQL表中填充的数据表。当组合框列遇到不在列表中的值时,它会出错。

1)我怎样才能得到注定要填充的组合框列发生之前的值?如果这是可能的,然后我可以添加值到列表中,建议在下面的答案。

设置'空字符串'作为组合框项

您应该使用null代替空字符串作为值。这个控件已经可以工作了。

尝试使用不属于组合单元格的值通常不是一个好主意。但如果你坚持这样做,你可以检查是否已经有值了。如果不添加,则设置值。

var comboColumn = ((DataGridViewComboBoxColumn)grid.Columns["combo_column"]);
if (!comboColumn.Items.Contains(value)) 
     comboColumn.Items.Add(value);

在datagridview上设置数据错误事件,然后捕获事件中的值,并按照前面回答的建议在comboboxcolumn项列表中设置它们。项目将显示在datagridview中,但不会永久存储在组合框列项目列表中。

    private void dgvVX130DataErrors(object sender, DataGridViewDataErrorEventArgs e)
    {
        DataGridViewComboBoxColumn comboColumn;
        switch (e.ColumnIndex)
        {
            case 4:
                comboColumn = ((DataGridViewComboBoxColumn)dgvVX130.Columns["DataDomain"]);
                if (!comboColumn.Items.Contains(dgvVX130.Rows[e.RowIndex].Cells[e.ColumnIndex].Value))
                {
                   comboColumn.Items.Add(dgvVX130.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
                }
                break;