0

我想取消 Data gridview 单元格点击事件

private void gridViewHistory_CellClick(object sender, DataGridViewCellEventArgs e)
{      
}

但是这个 eventargs 没有取消事件,如何取消该事件?可能这个问题有一个非常简单的答案,但我仍然陷入困境,需要帮助。

提前致谢。

4

4 回答 4

3

你不能。

WinForms 事件只是多播委托,然后它们不能被取消(在停止传播事件的意义上),除非这种情况是由公开事件的对象处理的(但我现在知道任何支持这个的对象,通常事件是通知)。

也就是说,某些事件具有带有Cancel属性的参数,对象使用它来取消由于该事件而应该执行的操作。同样,如果实现不提供该属性,则您无法更改此行为。

在您的情况下,您应该重写OnCellClick方法DataGridView以您喜欢的方式处理它(如果您不调用基类,则单元格将不会获得点击事件并且CellClick不会触发事件)。

于 2013-06-28T10:17:43.997 回答
1

并非所有活动都可以取消。您可以选择不在事件处理程序中执行任何操作,但这并不意味着您可以取消它。

因此,除非有特定Cancel类型的方法,否则您无法取消该事件。

于 2013-06-28T10:20:40.620 回答
0

您可能想使用CellValidating事件:

private void gridViewHistory_CellValidating(object sender,
    DataGridViewCellValidatingEventArgs e)
{
    if (.....)
    {
        e.Cancel = true;
    }
}
于 2013-06-28T10:22:51.287 回答
0

你可以试试

返回;

声明,但这仅适用于 asp:LinkBut​​ton OnClick 事件,这些事件不会传递给其他发布事件,例如 UpdateCommand。

于 2015-02-04T03:17:31.680 回答