-2

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

在此处输入图像描述

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

dropDownMenu1 = new ToolStripDropDownMenu();
dropDownMenu1.Location = new System.Drawing.Point(90, 45);
dropDownMenu1.Size = new System.Drawing.Size(70, 20);
this.Controls.Add(dropDownMenu1);

更新

这个解决方案没有解决我的问题。我已经使用了以下代码。但仍然给出同样的错误。

UserInputForm inputForm= new UserInputForm();
inputForm.TopLevel = false;
inputForm.ShowDialog();
4

1 回答 1

0

根据您的代码,您还必须为 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 类ToolStripDropDown 类

于 2021-06-30T09:32:05.513 回答