Как узнать значение частного поля события TextBox Leave? - PullRequest
0 голосов
/ 09 ноября 2018

На основании этого вопроса Я пытаюсь сделать то же самое для события 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, чтобы увидеть, является ли он проводным или нет?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...