如何處理從.NET TreeView控件派生的C#類中列出的任何樹視圖通知here?在派生的C#用戶控件中處理Windows通知
我試圖處理click通知,例如,像這樣:
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
樣式。由於在啓用TVS_EX_MULTISELECT
時,.NET TreeView控件不會觸發任何AfterSelect
事件,因此我想稍後調查TVN_SELCHANGED
和TVN_ITEMCHANGED
通知的行爲。
nope,它發送給家長控制,檢查我的答案;-) – peenut
@peenut - 是的,父母發回它。在片段中檢查WM_REFLECT的使用。它是一個純Winforms實現細節,但在包裝api的類庫中很常見。 –
FYI在另一個問題中'0x2000'的跟蹤http://stackoverflow.com/questions/10637133/wm-reflect-notify-vs-wm-notify/10637914#10637914 –