为什么在 visual studio 中将 dropDownMenu 添加到 windows 表单时出现错误?
Why I'm getting error when adding dropDownMenu to a windows form in visual studio?
当我尝试在向导中向我的表单添加下拉菜单时,出现以下错误。
这是我为下拉菜单编写的代码行。
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 组件和 Set ContextMenuStrip 属性 的形式。这样你就不需要编写代码来显示上下文菜单了。
ToolStripDropDownMenu的更多使用方法可以参考ToolStripDropDownMenu Class and ToolStripDropDown Class。
当我尝试在向导中向我的表单添加下拉菜单时,出现以下错误。
这是我为下拉菜单编写的代码行。
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 组件和 Set ContextMenuStrip 属性 的形式。这样你就不需要编写代码来显示上下文菜单了。
ToolStripDropDownMenu的更多使用方法可以参考ToolStripDropDownMenu Class and ToolStripDropDown Class。