禁用Inherited UserControl的事件

时间:2012-02-19 15:57:26

标签: c# events

(嗨,全部)

我已经创建了一个从tabcontrol继承的新用户控件,并覆盖了一些事件。

当我从一个标签页切换到另一个标签页时,将按顺序触发以下事件:

1) OnDeselecting(TabControlCancelEventArgs e)
2) OnMouseDown(MouseEventArgs e)
3) OnMouseClick(MouseEventArgs e)
4) OnMouseUp(MouseEventArgs e)

当1)被解雇时,我怎么能暂时禁用2)和3)?

非常感谢您的帮助!

PS:

我确实需要所有这些事件,目前我正在使用bool变量来完成这项肮脏的工作。

.net 3.5+ VS2008 + Win7 64

1 个答案:

答案 0 :(得分:2)

在OnDeselecting事件中尝试此操作

try
{
    tab.MouseDown -= new MouseEventHandler(this.YourMouseDownEvent);
    tab.MouseClick -= new MouseEventHandler(this.YourMouseClickEvent);
    ..... // your code here.....
}
finally
{
    tab.MouseDown += new MouseEventHandler(this.YourMouseDownEvent);
    tab.MouseClick += new MouseEventHandler(this.YourMouseClickEvent);
}