用MenuStrip动态创建菜单,怎样添加子菜单

用MenuStrip动态创建菜单,怎样添加子菜单,第1张

menuItem.Items.Add("文件", Nothing, AddressOf menuItem_Click).Name = "mnuFile"

menuItem.Items.Add("编辑", Nothing, AddressOf menuItem_Click).Name = "mnuEdit"

Dim doItem As ToolStripMenuItem = menuItem.Items("mnuFile")

doItem.DropDownItems.Add("打开", Nothing, AddressOf menuItem_Click).Name = "mnuOpen"

doItem.DropDownItems.Add("保存", Nothing, AddressOf menuItem_Click).Name = "mnuSave"

Private Sub menuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles menuItem.Click

'........

End Sub

这个很简单了,可以动态的,给你写了简单的例子,其他需要你自己拓展,我只是抛砖引玉哈!!

private void Form1_Load(object sender, EventArgs e)

{

//创建MenuStrip对象

MenuStrip MS = new MenuStrip()

//创建一个ToolStripMenuItem菜单,可以文本和图片一并添加

ToolStripMenuItem tsmi = new ToolStripMenuItem("测试按钮")

//绑定菜单的点击事件

tsmi.Click+=DemoClick

//创建子菜单 可以文本和图片一并添加

ToolStripMenuItem tsmi2 = new ToolStripMenuItem("测试子按钮")

//绑定子菜单点击事件

tsmi2.Click += DemoClick

//添加子菜单

tsmi.DropDownItems.Add(tsmi2)

//添加主菜单

MS.Items.Add(tsmi)

//界面显示

this.Controls.Add(MS)

}

//自己定义个点击事件需要执行的动作

private void DemoClick(object sender, EventArgs e)

{

ToolStripMenuItem but = sender as ToolStripMenuItem

MessageBox.Show(but.Text)

}

你需要把ToolStripMenuItem强制转换为ToolStripDropDownItem类型才能添加子项,其实你自己看看Form1.Designer.cs里设计器自动生成的代码就会明白了,方法如下

private void button1_Click(object sender, EventArgs e)

{

((ToolStripDropDownItem)(((ToolStripDropDownItem)contextMenuStrip1.Items["aToolStripMenuItem"]).DropDownItems["eToolStripMenuItem"])).DropDownItems.Add(new ToolStripMenuItem("h"))

//或者

ToolStripDropDownItem ts = ((ToolStripDropDownItem)contextMenuStrip1.Items["aToolStripMenuItem"])

ts = ((ToolStripDropDownItem)ts.DropDownItems["eToolStripMenuItem"])

ts.DropDownItems.Add(new ToolStripMenuItem("h"))

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11665085.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存