2009-11-06 64 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); 
}