2010-02-23 62 views
1

我正在使用ToolStripDropDown作为弹出式窗口托管用户控件。问题是当在弹出窗口中显示上下文菜单条时,弹出窗口在上下文菜单打开时自动关闭。 我曾尝试将ContextMenuStrip的子类继承并将WS_EX_NOACTIVATE添加到CreateParams,但没有任何更改。首先,我认为没有办法做到这一点,因为它是常见的行为,但我试图把一个TextBox类放到弹出的用户控件上,并调用Edit控件的上下文菜单 - 并且父弹出窗口没有关闭。 我错过了什么?弹出式窗口和上下文菜单

+1

您能告诉我们一些代码吗? – 2010-02-23 20:17:32

+0

我对你在问什么感到困惑。我理解在ToolStripDropDown中托管UserControl的概念。我不确定的是弹出窗口和上下文菜单是如何工作的。请问更多?或者一些代码? – Ken 2010-02-23 23:58:23

+0

我按照本文所述的方式使用ToolStripDropDown:http://www.codeproject.com/KB/menus/SuperContextMenu.aspx。 托管的UserControl将ContextMenuStrip属性设置为鼠标右键单击时显示的上下文菜单,但仅在显示上下文菜单时关闭ToolStripDropDown弹出窗口。 – 2010-02-24 08:52:05

回答

1

有一个类似的问题。在我的UserControll上是一个工具条。当我按下tooltriptripdown按钮时,显示下拉菜单,但弹出消失。 原因是popup.Aococlose是真的。设置为false后,Popup不再被关闭。

 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)); 
0

实际的解决方案应该是一个在马丁的最后的评论: 使用文本菜单代替的ContextMenuStrip 那一个为我工作,而ToolStripDropDown不再自行关闭时,右键单击其内容的控件之一,喜欢它应该。我们仍然需要它AutoClose,禁用ToolStripDropDown上的AutoClose会做坏事,它应该关闭失去焦点。例如:打开任何其他应用程序窗口,ToolStripDropDown将继续出现在顶部

相关问题