gpt4 book ai didi

c# - 如何检测 MenuStrip 的打开和关闭状态?

转载 作者:太空宇宙 更新时间:2023-11-03 13:50:46 25 4
gpt4 key购买 nike

我需要检测何时打开和关闭 MenuStrip(不是上下文菜单)。 Enter 和 Leave 事件似乎不起作用。

为什么我需要它:我使用带有"file"、“编辑”、“关于”等选项的 MenuStrip。但是当菜单条处于事件状态并且用户使用鼠标或键盘在其中导航时,Windows 窗体上的其他控件也会响应

例如:我在我的应用程序中使用鼠标单击“编辑 > 选择性粘贴.. > 无格式文本”。但在展开的菜单项下方是一个 XNA 2d 渲染控件,它还检测鼠标输入并执行我不希望它执行的操作。现在,如果我能检测到菜单何时打开,我就可以禁用/启用适当的控件。

最佳答案

在不了解更多关于你在做什么的情况下,你可以尝试下面的代码:

 private void Form1_Load(object sender, EventArgs e)
{
menuStrip1.GotFocus += new EventHandler(MenuStrip1_GotFocus);
menuStrip1.LostFocus += new EventHandler(MenuStrip1_LostFocus);
}

private void MenuStrip1_GotFocus(object sender, EventArgs e)
{
textBox1.Text = "Has Focus";
}

private void MenuStrip1_LostFocus(object sender, EventArgs e)
{
textBox1.Text = "Lost Focus";
}

private void menuStrip1_MenuActivate(object sender, EventArgs e)
{
textBox1.Text = "Has Focus";
}

private void menuStrip1_MenuDeactivate(object sender, EventArgs e)
{
textBox1.Text = "Lost Focus";
}

这似乎适用于您上面描述的内容。如果您的菜单 strip 有制表位 (true),则获得焦点事件将处理这种情况。如果您只需要在使用鼠标时进行更改,那么菜单事件事件应该起作用。

关于c# - 如何检测 MenuStrip 的打开和关闭状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13770570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com