1
我有一个MenuStrip
,我使用下面的代码使之AutoHide
。它隐藏/显示知府但是当一个控制获得焦点,按Alt键键,MenuStrip
节目,但它不活跃,没有下下“F”文件的快捷键,例如小下划线,并按下“F”会不打开它)。我如何正确地激活它?Autohide MenuStrip - 如何在显示时激活它?
注:我用MenuDeactivate
代替它,但它并没有知府工作。
bool menuBarIsHide = true;
bool altKeyIsDown = false;
bool alwaysShowMenuBar=false;
//KeyPreview is true;
//for prevent glitch(open/close rapidly)
void Form1_KeyUp(object sender, KeyEventArgs e)
{
if ((Control.ModifierKeys & Keys.Alt) != 0)
altKeyIsDown = false;
}
void Form1_KeyDown(object sender, KeyEventArgs e)
{
if ((Control.ModifierKeys & Keys.Alt) != 0)
{
if (altKeyIsDown)
return;
if (!alwaysShowMenuBar)
{
if (menuBarIsHide)
{
menuBar.Show();
menuBarIsHide = false;
//manage container height
}
else
{
menuBar.Hide();
menuBarIsHide = true;
//manage container height
}
}
}
}
让我知道如果您有任何关于应用该解决方案的问题。请记住,开始时应将'MenuStrip'的'Visible'属性设置为'false'。这是我知道的最稳定的自动隐藏菜单。 –
感谢您的回复,但存在问题。如果用户按住'Alt'键'menuStrip'就会快速打开和关闭。我应该如何解决这个问题? – NokhodSiah
不客气@NokhodSiah处理关键事件时,它的默认行为。我会检查它,如果我有任何问题,我会分享一个解决方案:) –