我创建了自己的用户控件。当我单击表单上的某个按钮时,我想显示我的用户控件。但是我不希望它被这样的东西永久显示:
uc.Visible = true;
然后再次隐藏它:
uc.Visible = false;
我希望我的用户控件的行为与上下文菜单相似。当我右键单击某个内容时,会显示我的上下文菜单,然后我不在乎如何隐藏我的上下文菜单。它会自动隐藏:
如何为用户控件实现此行为?
答案 0 :(得分:0)
它有点难看,但我从ToolStripDropDown
继承了一些成功,然后通过ToolStripControlHost
包含任意内容。将您的内容(UserControl,Panel或其他一些容器)传递给ToolStripControlHost
的构造函数,并将其添加到ToolStripDropDown.Items
。
两个丑陋的部分是:
MinimumSize
的{{1}}和MaximumSize
设置为内容的大小。此外,用户也没有内置的方式来调整窗口大小,因此如果需要,您还必须实现此功能。ToolStripDropDown
内的表现不佳。一旦他们把重点放在了你在其他地方点击的所有东西上它就会消失。示例包括ToolStripDropDown
和ComboBox
。您可以通过调用内部类 DateTimePicker
上的SuspendMenuMode
和ResumeMenuMode
来解决此问题。您需要找到此类型并使用反射调用这两种方法。以下资源可能会有额外的帮助: