【问题标题】:Failure to validate, but cannot remove in DataGridView验证失败,但无法在 DataGridView 中删除
【发布时间】:2011-02-15 04:22:39
【问题描述】:

这是在我的 DataGridView 的 RowValidation 函数中:

        DataGridViewRow row = viewApplications.Rows[e.RowIndex];
        if (row.Cells[colApplyTo.Index].Value == (object)-1) {
            if (MessageBox.Show("Row #" + (e.RowIndex + 1) + " is not assigned to a charge. Would you like to correct this? (If no, the row will be deleted)", "Invalid Row", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) {
                viewApplications.Rows.RemoveAt(e.RowIndex);
            } else {
                e.Cancel = true;
            }
        }

但是,有一个问题,如果用户说不,这意味着他或她不想更正这一行,我不能像我尝试做的那样删除它。我得到了异常:InvalidOperationException:无法在此事件处理程序中执行操作

如何更正此问题并仍然删除该行?

【问题讨论】:

    标签: c# datagridview


    【解决方案1】:

    要删除处理程序之外的行,您可以调用BeginInvoke

    BeginInvoke(new Action(delegate { viewApplications.Rows.RemoveAt(e.RowIndex); }));
    

    这将在下一个消息循环期间运行委托中的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 2022-12-09
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多