如题
举个例子,继承 Form 的 MyForm.Click 事件,实现有两种方式1、重写 MyForm.OnClick 虚函数
2、实现 MyForm.Click 事件问在Form的内部 是怎么将 OnClick 虚函数与 Click 事件挂钩的呢?
如果是 Click,那么在 Form 父类内部中可以
if(Click!=null)//举个例子
{
Click(obj,null);
}
来实现外界挂钩的委托。
但是OnClick虚函数在内部怎么调用执行的呢?
举个例子,继承 Form 的 MyForm.Click 事件,实现有两种方式1、重写 MyForm.OnClick 虚函数
2、实现 MyForm.Click 事件问在Form的内部 是怎么将 OnClick 虚函数与 Click 事件挂钩的呢?
如果是 Click,那么在 Form 父类内部中可以
if(Click!=null)//举个例子
{
Click(obj,null);
}
来实现外界挂钩的委托。
但是OnClick虚函数在内部怎么调用执行的呢?
解决方案 »
- Web开发,如何让多个按钮都链接到同一段函数
- 如何让有会员资格的人能下载资源,但不给他看到地址(防止资源外泄,只能来这个网站登录下东西)
- 请问以下功能该如何实现?
- 100分紧急求助:寻求SQL语句:如何查询从当前日期开始,往后退12个小时的数据啊?
- 求一个C#鼠标轨迹记录回放的程序,百度悬赏分!
- 如何得到datagrid中,某列的列名?
- 用的DevExpress.XtraTreeList.TreeList控件,请问怎么改变它的自定义列里的Check的状态?
- 求助,这个网站使用webbrowser无法查询,但浏览器可以,求解
- 如何返回请求页面的状态 比如说 200 404 ...
- C#里怎样才能注册热键呢?
- 关于ASP.NET中的CheckBoxList问题
- C#传送EXE档无法执行
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_xx)
this.OnClick(EventArgs.Empty);
base.WndProc(ref m);
}
这个我知道,你说的是事件消息驱动机制。但是像你刚刚那种说法就得protected override void WndProc(ref Message m)
{
if (m.Msg == WM_xx)
this.OnClick(EventArgs.Empty);//虚函数好像不能直接调用
if(m.Msg==Wm_xx)
if(this.Click!=null&&this.OnClick没有调用)//我用了点伪代码来表达我的意思
this.Click(obj,null);
base.WndProc(ref m);
}这样的话
1是虚函数不能直接调用的问题
2是这样判断了两次,会有性能上的丢失
{
if(Click!=null)//举个例子
{
Click(obj,null);
base.OnClick(e);
}}
在OnClick中,肯定得这样写.