【发布时间】:2011-12-31 02:41:08
【问题描述】:
我正在使用 WinForms DataGridView 控件。我已将此控件置于基本表单中,并将其订阅到DoubleClick 事件。但是在继承的表单上,我想从父事件中取消订阅它,并将它订阅到一个新事件。这可能吗?
【问题讨论】:
标签: c# winforms delegates event-handling
我正在使用 WinForms DataGridView 控件。我已将此控件置于基本表单中,并将其订阅到DoubleClick 事件。但是在继承的表单上,我想从父事件中取消订阅它,并将它订阅到一个新事件。这可能吗?
【问题讨论】:
标签: c# winforms delegates event-handling
您需要将protected 的值设置为DataGridView1.Modifiers 属性并将DataGridView1_DoubleClick 的DoubleClick 处理程序的修饰符更改为受保护。
基本形式,
protected void DataGridView1_DoubleClick(object sender, EventArgs e)
{
}
在继承自的负载处理程序中,
//To unregister handler
DataGridView1.DoubleClick-=new EventHandler(DataGridView1_DoubleClick);
//Register new handler
DataGridView1.DoubleClick+=new EventHandler(NewDataGridView1_DoubleClick);
【讨论】:
一个简单的解决方案是标记订阅的方法virtual并继承表单override它。
【讨论】: