如何附加到文本框事件Mouse.PreviewMouseDownOutsideCapturedElementEvent。
AddHandler(Mouse.PreviewMouseDownOutsideCapturedElementEvent,
new EventHandler<MouseButtonEventArgs>(HandleClickOutsideOfControl), true); contrstruction is not working.
我试图在textbox_loaded事件中执行此操作。 我得到了例外
"An unhandled exception of type 'System.ArgumentException' occurred in PresentationCore.dll
Additional information: Handler type is mismatched."
答案 0 :(得分:2)
试试这个:
AddHandler(Mouse.PreviewMouseDownOutsideCapturedElementEvent,
new MouseButtonEventHandler(HandleClickOutsideOfControl), true);
您还注意到HandleClickOutsideOfControl
的签名应该是这样的:
void HandleClickOutsideOfControl(object sender, MouseButtonEventArgs e){...}
您的错误是因为您认为通用委托EventHandler<MouseButtonEventArgs>
是相同的并且可以替换MouseButtonEventHandler
,但它们是完全不同的委托。
答案 1 :(得分:2)
此错误是因为可以使用无效参数调用方法。在这种情况下,可能会抛出ArgumentException。例外使用派生类型来表示其含义。但这并没有给他们额外的能力。
使用此:
AddHandler(Mouse.PreviewMouseDownOutsideCapturedElementEvent,
new MouseButtonEventHandler(HandleClickOutsideOfControl), true);