Toolstrip.Items.AddRange(ToolStripCollection)有奇怪的行为

本文关键字:Items AddRange ToolStripCollection Toolstrip | 更新日期: 2023-09-27 18:08:03

我正在处理的应用程序的一部分涉及一个动态ToolStrip,其中根据应用程序的状态添加和删除项。目前,我将项目存储在各种独立的工具条中,并在必要时简单地添加和删除它们。我遇到的问题是:

-如果新的工具条有一个项目,我使用AddRange方法,它将从新的工具条中删除,给它一个项目计数为0。

-如果新的工具栏有多个项目,我使用adrange,抛出一个argumentoutorange错误。

是否有一些关于ToolStripItemCollections我不知道这是导致这个,或者有一个更好的方法去编程这个?

编辑:快速示例代码
ToolStrip oldToolStrip = new ToolStrip();
ToolStrip newToolStrip = new ToolStrip();
newToolStrip.Items.Add(new ToolStripTextBox());
newToolStrip.Items.Add(new ToolStripButton());
oldToolStrip.Items.AddRange(newToolStrip.Items);            

Toolstrip.Items.AddRange(ToolStripCollection)有奇怪的行为

控件有一个bug:http://www.pcreview.co.uk/forums/possible-bug-toolstrip-items-addrange-t2900540.html