我使用ToolStripDropDown将用户控件作为弹出窗口进行托管。问题是,当从该弹出窗口中显示上下文菜单条时,该弹出窗口本身在上下文菜单打开的瞬间关闭。我尝试将ContextMenuStrip子类化,并将WS_EX_NOACTIVATE添加到CreateParams中,但没有任何变化。首先,我认为没有办法做到这一点,因为这是常见的行为,但后来我尝试将一个TextBox类放到弹出用户控件上,并调用“编辑”控件上下文菜单-但父弹出窗口没有关闭。我遗漏了什么?
发布于 2010-05-04 06:19:54
也有类似的问题。在我的UserControll上有一个工具条。当我按下toolsstripdropdownbutton按钮时,下拉菜单显示出来,但弹出窗口消失了。原因是popup.Autoclose是真的。设置为false后,弹出窗口不再关闭。
ToolStripDropDown popup = new ToolStripDropDown();
popup.AutoClose = false; //Set to FALSE
popup.Margin = Padding.Empty;
popup.Padding = Padding.Empty;
ToolStripControlHost host = new ToolStripControlHost(userControl1);
host.Margin = Padding.Empty;
host.Padding = Padding.Empty;
popup.Items.Add(host);
popup.Show(button1, new Point(100,100));发布于 2017-03-03 20:58:41
实际的解决方案应该是马丁最后评论中的解决方案:使用ContextMenu而不是我喜欢的ContextMenuStrip,当右键单击它的内容控件时,ToolStripDropDown不再像它应该的那样自动关闭。我们仍然需要它到AutoClose,在ToolStripDropDown上禁用AutoClose会做坏事,它应该在失去焦点时关闭。示例:打开任何其他应用程序窗口,ToolStripDropDown将继续显示在顶部
https://stackoverflow.com/questions/2321325
复制相似问题