c#下怎样获得contextmenustrip动态添加的二级菜单项的文本

c#下怎样获得contextmenustrip动态添加的二级菜单项的文本,第1张

ToolStripMenuItem mi0 = (contextMenuStrip1Items[0] as ToolStripMenuItem); //mi0是一级菜单

if (mi0HasDropDownItems) //如果mi0有子项

{

foreach (ToolStripMenuItem item in mi0DropDownItems)

{

//item //二级菜单

}

}

这个不是那么简单的

首先toolstripitem 不同于其它对象 他被一个toolstrip添加后 如果再被另一个toolstrip添加 那么第一个toolstrip的选项就莫名其妙的不见了 尽管你是重新负值之后才添加的 效果也是一样

思路还是回到遍历添加上 现在我们不能只是简单的付值添加了

我们要重新创建一个toolstripitem 然后把以前的item的属性取出来放到新的item里去

问题就出现在这 text size image 都容易 click事件怎么取出来呢(注意 我们现在是动态添加 所以不能像一楼说的直接手动指向方法名)

做一个公共的eventhander的数组试试 但是要在加载toolstripitem之前给它付值

public Form1()

{

//toolstriphanders

toolStripHanders = new SystemEventHandler[]{

new SystemEventHandler(thisStripMenuItem1_Click),

new SystemEventHandler(thisStripMenuItem2_Click)

};

InitializeComponent();

}

然后就可以在onload事件中遍历添加了

private void Form1_Load(object sender, EventArgs e)

{

for (int i = 0; i < ToolStripMenuItem1DropDownItemsCount; i++)

{

ToolStripMenuItem item = new ToolStripMenuItem();

itemText = ToolStripMenuItem1DropDownItems[i]Text;

itemClick += toolStripHanders[i];

thiscontextMenuStrip1ItemsAdd(item);

//主菜单事件

ToolStripMenuItem1DropDownItems[i]Click += toolStripHanders[i];

}

}

this表示当前类的对象,可以避免由于变量或方法名相同导致的调用混乱。

这句代码是向菜单中加入一个自定义的项目item,从注释和变量名来看,contextMenuStrip1应该是右键菜单,而contextMenuStrip2是其中的一个子菜单,就是菜单里带箭头的那种。

你写的是WinForm的吧。做菜单应该懂做了吧。我就直接给代码了。

假如我要点击某一个菜单,你在菜单的Click单击事件里写上。

if (thisToolStripMenuItemChecked)

{

thisToolStripMenuItemChecked = false;

}

else

{

thisToolStripMenuItemChecked = true;

}

ToolStripMenuItem是菜单的属性Name名字

首先从字面上理解,Menu就是菜单,MenuStrip是菜单栏,MenuItem是菜单项,ToolStripMenuItem是工具栏菜单项

Menu是Form类的一个属性,winform里面貌似没有这么一个类

MenuStrip是菜单栏控件,是MenuItem(早期net的产物)的容器,ToolStripMenuItem则是MenuItem的改良版本

继续往下撒,这个跟treeview 是一样的啊,每一层对象都一样,只是父级不同而已

foreach (ToolStripMenuItem item in itemDropDownItems[i])

{

}

以上就是关于c#下怎样获得contextmenustrip动态添加的二级菜单项的文本全部的内容,包括:c#下怎样获得contextmenustrip动态添加的二级菜单项的文本、C#鼠标右键调用主菜单、一道C#窗体程序题!请路过高手指教!谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9292488.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存