我想取消 Data gridview 单元格点击事件
private void gridViewHistory_CellClick(object sender, DataGridViewCellEventArgs e)
{
}
但是这个 eventargs 没有取消事件,如何取消该事件?可能这个问题有一个非常简单的答案,但我仍然陷入困境,需要帮助。
提前致谢。
我想取消 Data gridview 单元格点击事件
private void gridViewHistory_CellClick(object sender, DataGridViewCellEventArgs e)
{
}
但是这个 eventargs 没有取消事件,如何取消该事件?可能这个问题有一个非常简单的答案,但我仍然陷入困境,需要帮助。
提前致谢。
你不能。
WinForms 事件只是多播委托,然后它们不能被取消(在停止传播事件的意义上),除非这种情况是由公开事件的对象处理的(但我现在知道任何支持这个的对象,通常事件是通知)。
也就是说,某些事件具有带有Cancel
属性的参数,对象使用它来取消由于该事件而应该执行的操作。同样,如果实现不提供该属性,则您无法更改此行为。
在您的情况下,您应该重写OnCellClick
方法DataGridView
以您喜欢的方式处理它(如果您不调用基类,则单元格将不会获得点击事件并且CellClick
不会触发事件)。
并非所有活动都可以取消。您可以选择不在事件处理程序中执行任何操作,但这并不意味着您可以取消它。
因此,除非有特定Cancel
类型的方法,否则您无法取消该事件。
您可能想使用CellValidating
事件:
private void gridViewHistory_CellValidating(object sender,
DataGridViewCellValidatingEventArgs e)
{
if (.....)
{
e.Cancel = true;
}
}
你可以试试
返回;
声明,但这仅适用于 asp:LinkButton OnClick 事件,这些事件不会传递给其他发布事件,例如 UpdateCommand。