c#工具菜單ToolStrip控件使用筆記

1.嵌套窗體界面點擊無觸發html

主窗體上有一個工具菜單ToolStrip,在同一個界面嵌套了一個子窗體,當前焦點在子窗體內時,點擊ToolStrip上的按鈕,有點意外狀況:必須雙擊才能觸發這個ToolStripButton的Click事件。ide

這是由於,第一次點擊,程序將父窗體得到焦點,第二次點擊時(父窗體已處於焦點),纔會觸發事件工具

有一個解決辦法,可參見:https://www.cnblogs.com/wzwyc/p/6292693.htmlthis

就是,自定義一個組件,繼承系統的ToolStrip。並寫下以下代碼:spa

public class ToolStripEx : ToolStrip { protected override void WndProc(ref Message m) { const int WM_MOUSEACTIVATE = 0x21; if (m.Msg == WM_MOUSEACTIVATE && this.CanFocus && !this.Focused) this.Focus(); base.WndProc(ref m); } }

而後,用ToolStripEx控件代替原來的ToolStrip控件,便可。code

相關文章
相關標籤/搜索