Обработка уведомлений 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
уведомления позже.