标题可能没写清楚。比如说我看见很多人在写一个底层控件时候。如有点鼠标点击事情需要写一点代码。
protected override void OnMouseClick(MouseEventArgs e)
为什么不使用微软库类里本来就有的delegate?如
this.MouseClick += new MouseEventHandler(控件名_MouseClick);
protected void 控件名_MouseClick(object sender,MouseEventArgs e)
{
}
用第二种方法也可以啊。为什么都用第一种,有什么特殊含意吗?
protected override void OnMouseClick(MouseEventArgs e)
为什么不使用微软库类里本来就有的delegate?如
this.MouseClick += new MouseEventHandler(控件名_MouseClick);
protected void 控件名_MouseClick(object sender,MouseEventArgs e)
{
}
用第二种方法也可以啊。为什么都用第一种,有什么特殊含意吗?
解决方案 »
- 请教大家,如何给链接到计算机上的多个投影仪指定不同的视频?
- c# Convert.ToString 与 .ToString() 有什么区别?
- 遍历修改字典报错
- 当选中DataGrid单元格的某一行时,如何得到与之绑定的相对应行的其他各列值?
- 到底是学java,还是学C#,还是两者都学?请指点。
- 想做一个小软件,征求大家想法意见,并散分
- 关于自定义控件(在线等待)
- How to get the textheight of a textbox?
- ########## 高手救命 ####################
- 请问我如何判断一个STRING中有汉字?
- System.Media.SoundPlayer 问题
- csv 文件读取问题。
重写MouseClick说明控件本身的OnClick不能满足需求,Button的OnClick只是判断eventhander是否为空,然后执行回调,没有其他任务。而自定义控件需要做点别的
这样没重写方法..只是等待继承的某个方法的调用而已.
重写时 override ,可以重新定义控制逻辑,
用事件时,只能收到一个通知如
protected override void OnMouseClick(MouseEventArgs e)
{
if(xxx){ do xxx;}
if(yyy){base.OnMouseClick(e);}
}
这样,如果你不调用base.OnMouseClick,那么事件也不会产生,你
this.MouseClick += new MouseEventHandler(控件名_MouseClick);
就没有执行了。