父容器里的toolStrip加载子容器里的toolStrip
ChildFrm 里有一个ChildToolStrip:toolStrip ,主窗体也有一个ParentToolStrip ,ChildFrm 在主窗体里加载,加载同时隐藏 ChildToolStrip,然后把ChildToolStrip里的Item 赋给 ParentToolStrip代码如下:
for (int i = 0; i < ChildToolStrip.Items.Count; i++)
{
this.ParentToolStrip .Items.Add(ChildToolStrip.Items[i])
}
结里一直报 “索引超出范围。必须为非负值并小于集合大小” 的异常,改用Foreach或 this.ParentToolStrip .Items.AddRange也不行,我跟了一下断点,发现 每this.ParentToolStrip .Items.Add()一次,ChildToolStrip.Items.Count的值会自动减1,这个是不是跟引用有关。 最后我改成
int count=ChildToolStrip.Items.Count
for (int i = 0; i <count; i++)
{
this.ParentToolStrip .Items.Add(ChildToolStrip.Items[0]);
}
问题暂时是解决了,但感觉这样写有点不靠谱。所以想问有没有更好的写法。
还有就在我想在加载this.ParentToolStrip .Items时,把ChildToolStrip.Items的点击事件也加进去。
但需是动态的,有没有办法,求思路。 o
补充:.NET技术 , C#