2009-11-06 32 views
1

我創建的Winforms應用程序沒有任何Toolbars。主窗口的FormBorderStyle設置爲SizableControlBox設置爲true。每次我打Alt鍵然後用最多向下(不Alt鍵 + 向上Alt鍵 + 向下)控制箱顯示在我的應用程序的頂部左側。這是煩人,因爲有像Alt鍵 + [R在我網提供的快捷方式,如果用戶只需按下並釋放Alt鍵然後最多去上一行控制箱顯示出來。Winforms禁用控制框不顯示

我該如何重寫?

+0

Windows快捷方式標準規定修改器和快捷鍵必須同時按下。你想要做的就是違背這個標準。 – 2009-11-06 20:26:06

+0

不,我不想違背任何標準。按下並釋放「Alt」修飾符就會導致問題出現。其他熱鍵如Alt + R或Alt + J可以正常工作。我不想要任何事情發生,只需按下並釋放Alt。 – SKG 2009-11-06 21:17:30

+0

我剛剛創建了一個全新的Winforms應用程序,它沒有任何東西。 當我按下Alt,然後按上或下箭頭鍵(不是Alt + Up或Alt + Down)時,我看到控制框。它似乎是一個默認的Windows行爲。除非將ControlBox設置爲false,否則我無法禁用此功能,而我不想這樣做。 我不知道,可能是我在這裏缺少一些基本的東西。 – SKG 2009-11-06 21:31:04

回答

2

@Ken:我想你的代碼,並重點仍然要ControlBox出於某種原因。 調整了一下,它完美地滿足了我的需求。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == (Keys.RButton | Keys.ShiftKey | Keys.Alt)) 
    { return true; } 
    return base.ProcessCmdKey(ref msg, keyData); 
} 
0

您是否嘗試過將ShowIcon設置爲false

+0

是的。它被設置爲false,但這並不妨礙控制框出現。 – SKG 2009-11-06 21:13:59

0

如何:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == Keys.Alt) 
    { 
     keyData = Keys.None; 
    } 
    return base.ProcessCmdKey(ref msg, keyData); 
}