下拉选择控件

时间:2011-09-29 15:46:00

标签: c# winforms

我有一个漂亮的小UserControl是一个带有一些文本的可拖动框。控件的右侧是一个可点击的箭头,点击后,我想从弹出的一些选项中弹出一些控制权。

我已经有了一个PopoutWindow类,它继承了ToolStripDropDown,它允许我弹出一个新的控件来“弹出”此箭头的右侧,具有以下用法。

  MyPopoutWindow options = new MyPopoutWindow ();
  PopoutWindow popout = new PopoutWindow(options);
  popout.Show(arrowButton, arrowButton.Width, 0);

MyPopoutWindow(目前)是一个自定义UserControl,我希望它与ComboBox的弹出体或ToolStripMenu相同。

有没有人知道我可以使用或继承的Winforms控件来获得这种效果?我已尝试使用ToolStripDropDownMenuToolStripDropDown,但我收到以下例外情况:

Top-level control cannot be added to a control.

谢谢,

1 个答案:

答案 0 :(得分:1)

解决方案实际上非常明显(不是总是这样!)。正如我在问题中提到的那样,我尝试使用ToolStripDropDown,但却引发了异常。

要解决此问题,我已MyPopoutWindow继承ToolStripDropDown,但在构造函数中,将TopLevel属性设置为false。这很有效!

public MyPopoutWindow()
{
    TopLevel = false;
}