Bil*_*lly 5 .net c# events winforms
我正在开发一个自定义控件,并意识到我的代码正在运行两次.这不是一个很大的问题(它只是一个Focus方法调用).但是,我想了解它.
从阅读MSDN描述中点击| onclick事件,它声明:
当用户在对象上单击鼠标左键时触发.
所以我添加了OnClick事件和MouseClick事件来处理左右点击.但在调试代码后,我发现OnClick处理左右键单击事件.
为什么OnClick处理这两个并且我是否需要在我的代码中保留这两个事件由于某种原因我忽略了?
protected override void OnClick(EventArgs e)
{
this.Focus();
base.OnClick(e);
}
private void CustomControl_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
rightClickMenu(e);
}
}
Run Code Online (Sandbox Code Playgroud)
首先,您的链接不正确,它链接到HTML和DHTML参考,而不是WinForms :)正确的链接是Control.MouseClick事件
您只需要覆盖一个方法.如果您只想处理鼠标单击 - 覆盖OnMouseClick()并且不处理MouseClick事件,否则 - 覆盖OnClick()并且不要覆盖OnMouseClick().