2008-09-21 82 views
14

我製作了一個面板並將其設置爲填滿屏幕,現在我可以看到它下面的窗口,但我希望它能夠點擊,這意味着它們可以單擊文件或通過透明度查看另一個對象的工具提示。單擊Visual C#窗體窗體的透明度?

RE:這可能是太明顯,但是你試過發送面板通過右擊並選擇後面的「置於底層」?

我的意思是像在桌面或Firefox,我的項目中沒有的東西。

回答

21

創建透明的頂級窗體非常簡單。只需填充屏幕或所需區域,並將其定義爲具有相同值的TransparenyKey顏色和BackColor。

讓它忽略鼠標很簡單,你只需要重寫WndProc並告訴WM_HITTEST所有鼠標位置都被視爲透明。從而使鼠標與窗口下方發生的任何事情進行交互。像這樣的東西...

protected override void WndProc(ref Message m) 
    { 
     if (m.Msg == (int)WM_NCHITTEST) 
      m.Result = (IntPtr)HTTRANSPARENT; 
     else 
      base.WndProc(ref m); 
    } 
+1

該放哪個代碼?當我把它放在InitializeCoponets下時,它不起作用。我甚至不會打一次電話。 – Hooch 2011-09-22 22:36:15