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