在VB中子菜单可以用相同的Name,然后通过索引来调用,但如何在C#中实现呢?
有其他好的办法能实现用索引调用菜单也行,十分感谢你的高见!!!!!!!
有其他好的办法能实现用索引调用菜单也行,十分感谢你的高见!!!!!!!
解决方案 »
- DataSet数据合并,不用循环,懂得来
- 反射求解:跨应用程序域操作 GDI 。。 谢谢 100分
- 帮帮忙,请问ComponetArt中的Tabstrip如何设置他的选项卡为选中?
- 编译器错误信息: CS0122: 不可访问,因为它受保护级别限制 。这是为什么啊?在线等
- 聊聊搜索引擎的索引
- 求助如何重置窗体?就样关掉再运行一次那样
- 请教用DataSet怎么去下面的数据?
- C#中的录音程序~(在线求教~!)
- c# 多线程问题
- 请问在c#.net里,控件picturebox的paint事件怎么调用别的方法?
- 时间转换的问题?急急,在线等!
- 熟悉com和c#看过来,用IStream传输数据,第三贴了
.Net里面可以把控件按钮做成数组,不过必须手工写代码
例如:
Button[] myButtons = new button[30];
for(int i=0;i<myButtons.Length;i++)
{
myButtons[i] = new Button();
//..............
//代码从IDE自动生成里抄一些
this.Controls.Add(myButtons[i]);
}
//mainMenu1的子菜单
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItemF1_1,
this.menuItemF1_2,
this.menuItemF1_3,
this.menuItemF1_4,
this.menuItemF1_5}); //
// menuItemF1_1
//
//menuItemF1_1 的子菜单
this.menuItemF1_1.Index = 0;
this.menuItemF1_1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItemF1_1_1,
this.menuItemF1_1_2});-----------------------------------------------------------------------------
所以每个menuitem都有可能有子菜单,用递归的方式找出每个不为不是父菜单的menuitem。然后针对 不是父菜单的menuitem 项判断是否是你需要的菜单项。
private void Fun(MenuItem m)
{
if(m.IsParent)
{
foreach(MenuItem mm in m.MenuItems)
{
Fun(mm);
}
}
else
{
//在这里实现要的操作
//比如:m.PerformClick(); 出发click事件。
Console.WriteLine(m.Text);
}
}
//---------------------
foreach(MenuItem mam in this.mainMenu1.MenuItems)
{
Fun(mam);
}
//mainMenu1的子菜单
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItemF1_1,
this.menuItemF1_2,
this.menuItemF1_3,
this.menuItemF1_4,
this.menuItemF1_5}); //
// menuItemF1_1
//
//menuItemF1_1 的子菜单
this.menuItemF1_1.Index = 0;
this.menuItemF1_1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItemF1_1_1,
this.menuItemF1_1_2});-----------------------------------------------------------------------------
所以每个menuitem都有可能有子菜单,用递归的方式找出每个不为不是父菜单的menuitem。然后针对 不是父菜单的menuitem 项判断是否是你需要的菜单项。
private void Fun(MenuItem m)
{
if(m.IsParent)
{
foreach(MenuItem mm in m.MenuItems)
{
Fun(mm);
}
}
else
{
//在这里实现要的操作
//比如:m.PerformClick(); 出发click事件。
Console.WriteLine(m.Text);
}
}
//---------------------
foreach(MenuItem mam in this.mainMenu1.MenuItems)
{
Fun(mam);
}