请问C#中的ToolStrip怎么动态移除ToolStripButton?
请问C#中的ToolStrip怎么动态添加、移除ToolStripButton?添加问题已经解决,可是无法移除呀,只能隐藏,请高手解决,谢谢!...
请问C#中的ToolStrip怎么动态添加、移除ToolStripButton?
添加问题已经解决,可是无法移除呀,只能隐藏,请高手解决,谢谢! 展开
添加问题已经解决,可是无法移除呀,只能隐藏,请高手解决,谢谢! 展开
2个回答
展开全部
可以用Items集合的Remove方法,其它的方法还有RemoveAt、RemoveByKey。
Remove方法你需要获取目标对象,可以遍历其控件集合获取,知道控件的Index值或Name就可以使用后面两种方法,例如使用RemoveByKey:
//添加
ToolStripButton Btn1 = new ToolStripButton();
Btn1.DisplayStyle = ToolStripItemDisplayStyle.Text;
Btn1.Name = "toolStripButton1";
Btn1.Text = "New Button";
Btn1.Size = new System.Drawing.Size(124, 22);
this.toolStrip1.Items.Add(Btn1);
//移除
this.toolStrip1.Items.RemoveByKey("toolStripButton1");
Remove方法你需要获取目标对象,可以遍历其控件集合获取,知道控件的Index值或Name就可以使用后面两种方法,例如使用RemoveByKey:
//添加
ToolStripButton Btn1 = new ToolStripButton();
Btn1.DisplayStyle = ToolStripItemDisplayStyle.Text;
Btn1.Name = "toolStripButton1";
Btn1.Text = "New Button";
Btn1.Size = new System.Drawing.Size(124, 22);
this.toolStrip1.Items.Add(Btn1);
//移除
this.toolStrip1.Items.RemoveByKey("toolStripButton1");
追问
谢谢,单个移除已经没有问题,如何遍历移除呢?
foreach 提示【集合已修改;可能无法执行枚举操作。】
追答
遍历移除?除非你要移除特定类型的控件或者有特殊关键字的控件,否则直接用Items的Clear方法就可以了,何必用遍历这种有性能消耗的方法来做?
展开全部
//添加
ToolStripButton ToolStripButton1=new ToolStripButton("Button1"); //实例化按钮对象
ToolStrip1.Items.Add(ToolStripButton1); //加入集合
//删除
ToolStrip1.Items.Remove(ToolStripButton1); //从集合中移除
ToolStripButton1.Dispose(); //销毁对象
追问
谢谢,单个移除已经没有问题,如何遍历移除呢?
foreach 提示【集合已修改;可能无法执行枚举操作。】
追答
List<Control> lc = new List<Control>();
foreach(Control ca in ToolStrip1.Items)
{
lc.add(ca);
}
foreach(Control cb in ToolStrip1.Items)
{
ToolStrip1.Items.Remove(cb);
cb.Dispose();
}
先弄到另外一个集合里,代码手打
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询