我有一个漂亮的小UserControl是一个带有一些文本的可拖动框。控件的右侧是一个可点击的箭头,点击后,我想从弹出的一些选项中弹出一些控制权。
我已经有了一个PopoutWindow类,它继承了ToolStripDropDown,它允许我弹出一个新的控件来“弹出”此箭头的右侧,具有以下用法。
MyPopoutWindow options = new MyPopoutWindow ();
PopoutWindow popout = new PopoutWindow(options);
popout.Show(arrowButton, arrowButton.Width, 0);
MyPopoutWindow(目前)是一个自定义UserControl,我希望它与ComboBox的弹出体或ToolStripMenu相同。
有没有人知道我可以使用或继承的Winforms控件来获得这种效果?我已尝试使用ToolStripDropDownMenu
和ToolStripDropDown
,但我收到以下例外情况:
Top-level control cannot be added to a control.
谢谢,
答案 0 :(得分:1)
解决方案实际上非常明显(不是总是这样!)。正如我在问题中提到的那样,我尝试使用ToolStripDropDown
,但却引发了异常。
要解决此问题,我已MyPopoutWindow
继承ToolStripDropDown
,但在构造函数中,将TopLevel
属性设置为false。这很有效!
public MyPopoutWindow()
{
TopLevel = false;
}