2011-03-03 71 views
0

我想做一個程序,基本上是一個ContextMenuStrip,用戶可以添加自己的快捷方式等,並通過按熱鍵組合訪問菜單。C# - 獨立的ContextMenuStrip - 一些挫折

我使菜單出現的方式是給主窗體0%不透明度,但如果有其他方式,請讓我知道。

我的願望就是讓這樣的事情,只是多了很多定製的和用戶友好: http://www.bullzip.com/products/exm/info.php

到目前爲止,我有兩個問題: - 當第一次顯示的菜單,一切可以正常工作,但是當我再次嘗試按下熱鍵時,會出現菜單,但任務欄中的「空白」窗口也會出現。 - 同樣,當菜單第一次顯示時,一切都很好,但是當在菜單上的其他地方點擊時,它將不會再次關閉。關閉它的唯一方法是從菜單中選擇一些東西。

希望你們中的一些可以點我一個解決方案:)

謝謝你在前進的方向!

+0

什麼樣的應用程序(WebForms,WPF等)?如果您只顯示菜單,爲什麼還需要主窗體? – 2011-03-03 20:08:22

+0

它是WinForms。我怎樣才能使一個沒有主窗體的應用程序,只顯示菜單?順便說一下,我打算通過NotifyIcon使其可訪問(用於編輯菜單等) – Neo3000 2011-03-03 20:33:01

+1

您通過將不透明度設置爲0來讓事情變得可見,從而讓我失去了知覺。這個問題毫無意義,也是無法回答的。 – 2011-03-03 20:52:19

回答

0
Form.ShowInTaskbar = false; 

Form.WindowState = FormWindowState.Minimized; 

這應該隱藏你的形式。

然後使用以下來捕獲按鍵。

protected override bool ProcessCmdKey(ref Meassage msg, Keys keyData) 
{ 
    if(keydata == whatever) 
    { 
     contextmenustrip.Show(); 
    }  

    return true; //false if you want to suppress the key press. 
} 
+0

我已經設置了這些屬性,但它不工作..它仍然在任務欄中打開,並且不會在失去焦點時關閉。 – Neo3000 2011-03-03 21:14:41

+0

是的,這需要顯示窗體,它不是一個全球熱鍵 - 我已經做到了這一點..我的問題是,它不會隱藏,當點擊其他東西,它顯示在任務欄中,儘管所有它的設置是(據我所知)正確設置。 – Neo3000 2011-03-03 21:24:12