创建一个具有菜单特征的控件?

时间:2012-01-02 12:16:31

标签: c# .net vb.net user-controls menu

我可以创建一个具有2个菜单特征的控件:

  • 不要把表格的重点放在点击上。
  • 点击外面时自动消失。

我打算手动绘制它,但我意识到我不能像系统菜单那样在窗体边框之外绘制。

2 个答案:

答案 0 :(得分:2)

您正在描述ToolStripControlHost,它可以包含您想要的任何控件。与ToolStripDropDown配对,您有一个非常有效的自定义下拉控件,它不会从主窗体中获取焦点,并且会在其外部单击时关闭:

Dim toolDrop As New ToolStripDropDown()
Dim toolHost As New ToolStripControlHost(myControl)
toolHost.Margin = New Padding(0)
toolDrop.Padding = New Padding(0)
toolDrop.Items.Add(toolHost)
toolDrop.Show(Me, New Point(0, 0))

无论myControl是什么,有时你必须将它的MinimumSize设置为等于控件的大小。您可以为ToolStripDropDown处理事件,例如OpeningClosing

答案 1 :(得分:0)

什么样的控制?它是一个CommandButton?如果是这样,您可以将Allow Focus属性设置为 False