Обработка уведомлений Windows в производном пользовательском элементе управления C #

Как я могу обработать любое из представленных уведомлений в виде дереваВот в классе C #, который является производным от элемента управления .NET TreeView?

Я пытался обработать уведомление о клике, например, так:

class ExtendedTreeView : TreeView
{
    private const Int32 NM_FIRST = (Int32)(0U - 0U);
    private const Int32 NM_CLICK = unchecked((Int32)((UInt32)NM_FIRST - 2U));

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == NM_CLICK)
        {
            MessageBox.Show("NM_CLICK");
        }
        base.WndProc(ref m);
    }
}

Но окно сообщения никогда не отображается. Это первый раз, когда я пытаюсь использовать Win32 API, чтобы изменить поведение элемента управления .NET, поэтому я понятия не имею, что идет не так.

Это правильный подход для обработки этих уведомлений?

К вашему сведению: я знаю, что элемент управления .NET TreeView имеет событие щелчка. Это всего лишь первый тест. Позже я хочу включитьTVS_EX_MULTISELECT стиль. Поскольку элемент управления .NET TreeView не запускаетAfterSelect события, когдаTVS_EX_MULTISELECT включен, я хочу исследовать поведениеTVN_SELCHANGED а такжеTVN_ITEMCHANGED уведомления позже.

Ответы на вопрос(3)

Ваш ответ на вопрос