我需要添加一个事件处理程序到像datagridview这样的继承控件,但Visual Studio不允许我。没有一种方法让继承控件触发基本事件处理程序和继承的控件?在我指定的序列中?如何将事件处理程序添加到继承的Winform控件?
0
A
回答
1
你的问题不清楚。假设您试图在继承的控件中处理基类的事件,您可以覆盖On EventName受保护的虚拟方法。在覆盖中,确保调用基本方法或事件不会触发。
对于System.Windows.Forms中每个控件中的每个事件,此方法都存在(AFAIK)。如果您继承的控件没有此虚拟方法,则可以在构造函数中订阅通风口。
例如:
class MyButton : Button {
//First way
protected override void OnClick(EventArgs e) {
base.OnClick(e); //Without this line, the event won't be fired
//...
}
//Second way
public MyButton() {
base.Click += Base_Click;
}
void Base_Click(object sender, EventArgs e) {
//...
}
}
编辑:
如果你想养基类的事件,你可以调用这些在事件名称方法。
如果基类没有,那么唯一的方法就是声明一个新事件,并向引发新事件的基类中的原始事件添加一个处理程序。请注意,如果您有其他代码使用基类的事件,并且evnet不是virtual
,并且没有提升方法,那么您运气不佳,除非您可以反编译基类并找出事件的位置被提出。
1
WinForms中的事件通常具有相应的“On *”方法。只需调用该方法,它就会引发事件。例如,如果您想举起“CellClick”,请调用“base.OnCellClick(new DataGridViewCellEventArgs(row,column))”。
相关问题
- 1. 如何将控件添加到继承的WinForm中的容器
- 2. 如何将事件处理程序添加到继承ITemplate的clss中的控件
- 3. 事件处理程序继承
- 4. 将onClick事件处理程序添加到Silverlight控件?
- 5. 事件处理继承(C++)
- 6. Node.js:如何将事件处理程序添加到Connect/Express Server?
- 7. 新添加的div不会继承文档中的事件处理程序
- 8. vs2008 c#:将事件添加到facebook的winform应用程序的eventlist控件
- 9. 将事件处理程序添加到纯React组件中?
- 10. 将事件处理程序添加到项目编程
- 11. 添加自己的事件处理程序在其他事件处理程序
- 12. 如何添加事件处理程序在WPF像一个可以在winform
- 13. 处理来自继承类的事件
- 14. 如何将点击事件处理程序添加到wxStaticBitmap组件中?
- 15. 添加Google Analytics事件处理程序
- 16. 添加事件处理程序
- 17. 动态添加事件处理程序
- 18. 在GridView中添加事件处理程序到DropDownList - 如何?
- 19. 如何事件处理程序添加到控制的DataTemplate在资源字典
- 20. VB.NET如何将事件处理程序添加到位于以编程方式创建的控件中的ComboBoxColumn?
- 21. 禁止访问继承的winform控件
- 22. 无法将事件处理程序添加到ASP。 net page
- 23. jquery - 将事件处理程序添加到对象群体
- 24. 将事件处理程序添加到WPF DataGrid抛出NullReferenceException
- 25. 将事件处理程序添加到AngularJS transclusion content
- 26. 将事件处理程序附加到Com事件:InvalidOperationException(S7-PLCSIM)
- 27. 将事件处理程序附加到事件OnInit或OnLoad上
- 28. 如何将变更事件处理程序附加到变量?
- 29. 在C#中继承事件处理程序#
- 30. 如何将参数添加到JavaScript中的事件处理程序中?
+1,因为这是我正在寻找的答案。 – 2013-08-19 10:49:28