簡體   English   中英

ToolStrip控件從不觸發Enter / Leave事件?

[英]ToolStrip control never fire Enter/Leave event?

我在WinForms中創建了一個可移動面板。 我使用ToolStrip作為面板中的標題欄。 我將使用ToolStrip來移動面板以及指示面板是否處於“活動”狀態。 因此,當面板處於活動狀態時,我想將ToolStrip的BackColor更改為Red。

更新:該面板將托管其他控件,例如列表視圖。 我希望當托管控件獲得焦點時,該面板顯示為“活動”,有點像普通窗口的行為,而該窗口成為面板,標題欄變為ToolStrip。

當面板被視為“活動”時

  1. 托管控制獲得關注
  2. ToolStrip被MouseDown / MouseClick
  3. 用鼠標拖動ToolStrip

這個想法是捕獲ToolStrip的Enter / Leave事件以更改顏色,但似乎這些事件從未觸發過。

那些事件真的沒有被解雇嗎? 我應該捕捉其他事件嗎?

嗯,我猜有幾種方法可以做到這一點。

您可以使用掛鈎到IMessageFilter消息中,並查看它是否在工具欄/面板上,然后采取相應措施(WM_LBUTTONDOWN,WM_MOUSEMOVE,WM_LBUTTONUP等-有關所有Windows消息的十六進制消息代碼,請參閱Windows消息中的Windows文檔)。 有很多關於-的示例,例如: 如何檢測鼠標是否位於整個窗體和子控件中?

根據是否激活來設置布爾值,繪畫中的覆蓋可以允許顏色設置-或簡單地將它們與布爾值一起翻轉(或代替布爾值)。 與移動相同,為活動/非活動設置布爾值-然后允許WM_MOUSEMOVE根據需要移動表單/面板(或不移動)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM