如何遍历下拉菜单?

lf44785170 2008-07-14 03:33:48
在一个自定义控件里边,想做成像窗口菜单那样,多选一的效果

this.选择ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.全部展开ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.全部合拢ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

this.选择ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.全部合拢ToolStripMenuItem,this.全部展开ToolStripMenuItem});

//菜单单击事件,设置选择点击菜单为 选择
void newmenu_Click(object sender, EventArgs e)
{
ToolStripMenuItem menu = (ToolStripMenuItem)sender;
menu.Checked = true
}

问题是下面的遍历不能取消所有原来选择的,只有 Enabled 却没有 Checked
for (int c = 0; c<选择ToolStripMenuItem.DropDownItems.Count;c++ )
{
选择ToolStripMenuItem.DropDownItems[c].Enabled = false;
}


有什么方法全部设置 DropDownItems 里边 Checked = false ?

...全文
150 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lf44785170 2008-07-14
  • 打赏
  • 举报
回复
谢谢 sisen ,改了果然成功,哈哈,心情好多了!
sisen 2008-07-14
  • 打赏
  • 举报
回复
for (int c = 0; c <选择ToolStripMenuItem.DropDownItems.Count;c++ )
{
ToolStripMenuItem tsmi=选择ToolStripMenuItem.DropDownItems[c] as ToolStripMenuItem;
if (tsmi==null)
continue;
tsmi.Checked = false;
}
你要转换一下的。上面的代码有BUG,现在进行了一次修正。
sisen 2008-07-14
  • 打赏
  • 举报
回复
for (int c = 0; c <选择ToolStripMenuItem.DropDownItems.Count;c++ )
{
ToolStripMenuItem tsmi=(ToolStripMenuItem)选择ToolStripMenuItem.DropDownItems[c];
tsmi.Checked = false;
}
你要转换一下的。
初吻给了烟 2008-07-14
  • 打赏
  • 举报
回复
应该这样的
for (int c = 0; c <选择ToolStripMenuItem.DropDownItems.Count;c++ )
{
选择ToolStripMenuItem.DropDownItems[c].Checked = false;
}

110,892

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧