捕获DataGrid视图错误

时间:2011-06-22 20:18:56

标签: c# winforms datagridviewcombobox

我的用户想要一种方法对我们的产品数据库进行批量上传/编辑,就像他们使用excel一样,他们可以在电子表格中复制和粘贴。虽然这让我感到畏缩,但我不是老板,所以它就是这样。我只是将所有内容转储到数据网格视图,然后让它们在那里进行编辑(呃)。虽然有许多东西需要特定的值(即大小),但我不希望它们输入XL,XLarge,X-Large,xlarge,例如它们都应该是XLarge。所以我需要组合框。很容易,但他们也希望能够选择要显示的列,因此我不能指定列类型的静态表。我已设法动态制作合适的列组合框列并用数据填充它们。我这样填写:

for (int y = 0; y < table.Rows.Count; y++)
{
    viewMassEdit.Rows.Add();
    for (int x = 0; x < table.Columns.Count; x++)
        viewMassEdit.Rows[y].Cells[x].Value = table.Rows[y][x].ToString();
}

所有数据都填写正确。没有例外。这就是问题所在。这会创建一个大表,当我开始纵向或横向滚动时,会定期弹出这些未处理的错误消息:

enter image description here

它在谈论什么废话?当我把它放在那里时,它接受了价值,当我在桌子上航行时,它现在是一个什么问题?此外,我将在哪里处理此错误?

2 个答案:

答案 0 :(得分:1)

好吧,要“处理”错误 - 在事件DataGridView.DataError中添加处理程序:

void InitializeComponent() {
   // ... //

   this.DataGridView.DataError += this.DataGridView_DataError;
}

void DataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e) {
   e.ThrowException = false;
}

您可能希望调试DataGridViewDataErrorEventArgs,并查看异常等,以便您可以首先阻止它被触发。

答案 1 :(得分:0)

要知道在哪里处理错误,请使用Break on Handled Exceptions进行调试(Debug-&gt; Exceptions)。这应该可以帮助您确定来源。