3

我正在尝试将事件标记为已处理,但是当我尝试这样做时会引发异常。

我有以下函数在LostFocusa 事件中被调用TextBox

private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
   // ...
   // do something
   // ...

   e.Handled = true;
}

但是,一旦e.Handled = true执行,就会引发以下异常:

PresentationCore.dll 中出现“System.InvalidOperationException”类型的未处理异常

附加信息:每个 RoutedEventArgs 都必须有一个与之关联的非空 RoutedEvent。

我曾尝试e.Handled在函数中的其他代码之前移动该行,但这无济于事。

为什么会引发异常以及有哪些可能的解决方法?

4

1 回答 1

2

弄清楚了。TextBox_LostFocus正在从应用程序的其他地方调用,事件参数为null.

TextBox_LostFocus因此,对于某些对,的函数调用e.Handled不起作用(因为e为空),但在其他一些场景中起作用(当它实际被框架调用时)。

于 2012-11-18T15:12:17.467 回答