c# - 启用不在列表中显示的值 - System.ArgumentException:DataGridViewComboBoxCell 值无效
问题描述
数据网格视图中有一个列。我为它创建了一个DataGridViewComboBoxColumn
并将数据源设置为值列表。
DataGridViewComboBoxColumn1.DataSource = new List<string>{ "...", "..." };
并非所有列的值都在列表中。我希望用户能够选择列表中的值并更新列表中不存在的这些值的值。
但是,在加载数据网格视图时,系统会不断弹出以下错误,因为这些值不在列表中。
System.ArgumentException:DataGridViewComboBoxCell 值无效。
它是另一个用于此目的的数据网格视图控件吗?或者是否可以抑制错误?
解决方案
您需要处理以下事件:
DataError
:在渲染单元格时防止出现异常对话框。CellFormatting
:显示组合框值中不存在的单元格的值。
例子
private void Form1_Load(object sender, EventArgs e)
{
var dt = new DataTable();
dt.Columns.Add("C1");
dt.Rows.Add("A");
dt.Rows.Add("B");
dt.Rows.Add("C");
dt.Rows.Add("D");
var column = new DataGridViewComboBoxColumn();
column.DataPropertyName = "C1";
column.Name = "C1";
column.DataSource = new List<string> { "A", "B" };
dataGridView1.DataError += (s, a) =>
{
if (a.ColumnIndex == 0)
a.ThrowException = false;
};
dataGridView1.CellFormatting += (s, a) =>
{
if (a.ColumnIndex == 0)
{
a.Value = dataGridView1[a.ColumnIndex, a.RowIndex].Value;
a.FormattingApplied = true;
}
};
dataGridView1.Columns.Add(column);
dataGridView1.DataSource = dt;
}
推荐阅读
- angular - 更新已安装的 PWA 目标 URL(或使用新的目标 URL 重新安装应用程序)
- python - 其他数组修改的numpy数组
- javascript - 将函数及其参数作为参数传递给另一个
- java - Apache-POI/ Java/ leaving out rows when writing to an Excel file
- java - Experiencing Code Coverage issue only when using Stream
- python - Can't print class fucntion return with .format()
- topology - continuous onto function from (0,1)x(0,1) to [0,1]x[0,1]
- visual-studio - Copy dependency assemblies into nuget package
- java - How to open a document on an alert dialog using PDFView on the app without using Intents
- javascript - Why am I not getting a status code of 200?