На основании этого вопроса Я пытаюсь сделать то же самое для события TextBox Leave. Это должно быть легко, и я создал метод расширения следующим образом:
public static class TextBoxExtensions
{
public static bool IsLeaveEventWired(this TextBox txt)
{
var eventKey = typeof(TextBox).GetField("EVENT_LEAVE",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Static)
.GetValue(txt);
EventHandlerList eventList = typeof(TextBox).GetProperty("Events",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance)
.GetValue(txt, null) as EventHandlerList;
return eventList[eventKey] != null;
}
}
Проблема в том, что, по-видимому, ключ EVENT_LEAVE не существует, потому что я получаю исключение NullReferenceException. До сих пор я пытался получить все поля TextBox, но я получаю только один объект FieldInfo "EVENT_TEXTALIGNCHANGED", который не является событием, для которого у меня есть обработчик, и два события, которые я делаю, "Leave" и "KeyUp", не включены в список.
Итак, в качестве заголовка вопроса, как мне найти ключ к событию TextBox's Leave, чтобы увидеть, является ли он проводным или нет?
Спасибо.