问题描述
dropDownMenu1 = new toolstripdropdownMenu();
dropDownMenu1.Location = new System.Drawing.Point(90,45);
dropDownMenu1.Size = new System.Drawing.Size(70,20);
this.Controls.Add(dropDownMenu1);
更新
这个 solution 没有解决我的问题。我已经使用了以下代码。但是还是报同样的错误。
UserInputForm inputForm= new UserInputForm();
inputForm.TopLevel = false;
inputForm.ShowDialog();
解决方法
根据您的代码,您还必须为 dropDownMenu1 设置 Items,并在设置 dropDownMenu1.TopLevel = false; 后将其设置为显示。您可以尝试参考以下代码。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ToolStripDropDownMenu dropDownMenu1 = null;
private void Form1_Load(object sender,EventArgs e)
{
dropDownMenu1 = new ToolStripDropDownMenu();
dropDownMenu1.Items.Add("item1");
dropDownMenu1.Items.Add("item2");
dropDownMenu1.Items.Add("item3");
dropDownMenu1.Location = new Point(90,45);
dropDownMenu1.Size = new System.Drawing.Size(70,20);
dropDownMenu1.TopLevel = false;
this.Controls.Add(dropDownMenu1);
}
protected override void OnSizeChanged(EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
//_formContextMenu or this.contextMenuStrip1
dropDownMenu1.Visible = true;
dropDownMenu1.Close();
}
base.OnSizeChanged(e);
}
private void button1_MouseClick(object sender,MouseEventArgs e)
{
dropDownMenu1.Show(e.Location);
}
}
如果没有使用ToolStripDropDownMenu的特定目标,您也可以使用ContextMenuStrip组件并设置表单的ContextMenuStrip属性。这样您就无需编写代码来显示上下文菜单。
ToolStripDropDownMenu的更多使用方法可以参考ToolStripDropDownMenu Class和ToolStripDropDown Class。