为什么在 Visual Studio 中将 dropDownMenu 添加到 Windows 窗体时出现错误?

问题描述

当我尝试在向导中向表单添加下拉菜单时,出现以下错误

enter image description here

这是我为下拉菜单编写的代码行。

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);
    }
  }

结果: enter image description here

如果没有使用ToolStripDropDownMenu的特定目标,您也可以使用ContextMenuStrip组件并设置表单的ContextMenuStrip属性。这样您就无需编写代码来显示上下文菜单。

ToolStripDropDownMenu的更多使用方法可以参考ToolStripDropDownMenu ClassToolStripDropDown Class