作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 menuStrip
中的一个 ToolStripMenuItem
包含我可以选择隐藏/取消隐藏的表的所有列 DropDown
每次我想这样做时重新打开下拉菜单(单击该项目)。是否有允许此菜单在从中选择项目后持续存在的设置?
我计划仅在理想情况下鼠标悬停在下拉菜单上或选择窗口中的另一个控件时关闭下拉菜单(我假设是 Lose Focus
事件)。
我实现了第一个答案,但每次选择一个项目时它都有一个非常明显的闪烁:
我尝试修复它的第一种方法涉及禁用 item.DropDown.AutoClose
但这引入了什么事件触发 AutoClose
的问题所以我可以重新实现事件我想要的。我尝试了 MouseLeave
和 LoseFocus
事件,但我似乎无法让它们以可靠的方式为此目的工作。 (阅读我对第一个答案的回复)
最佳答案
您可以编写一个方法,以编程方式重新打开菜单条项,并从按钮单击事件中调用它。
这是此类方法的示例:
private void OpenDropDown(int dropindex = 0)
{
ToolStripDropDownItem item = menuStrip1.Items[dropindex] as ToolStripDropDownItem;
if (item.HasDropDownItems)
{
// Re-openes the menustrip item
item.ShowDropDown();
}
}
关于c# - 如何阻止 ToolStripMenuItem 下拉菜单在选择项目时自行删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61707645/
我发现以下帖子非常有帮助: How to pickle yourself? 但是,此解决方案的局限性在于,重新加载类时,它不会以其“运行时”状态返回。即它将重新加载所有变量等以及类在转储时的一般状态.
我是一名优秀的程序员,十分优秀!