using System.Collections; namespace System.Windows.Forms { public class ToolStripItemCollection : WrappedCollection { private Control owner; internal ToolStripItemCollection(Control owner) => this.owner = owner; protected override IList InnerList => owner.Controls; public ToolStripItem this[int index] => owner.Controls[index] as ToolStripItem; public int Add(ToolStripItem item) { var result = owner.Controls.Add(item); item.SetOwnerItem(owner as ToolStripItem); item.ResetImage(); item.ApplyStyle(); return result; } public void AddRange(ToolStripItem[] items) { foreach (ToolStripItem item in items) Add(item); } public void Insert(int index, ToolStripItem item) { owner.Controls.Insert(index, item); item.SetOwnerItem(owner as ToolStripItem); item.ResetImage(); item.ApplyStyle(); } public int IndexOf(ToolStripItem item) => owner.Controls.IndexOf(item); public void Clear() => owner.Controls.Clear(); public bool Contains(ToolStripItem item) => owner.Controls.Contains(item); public void Remove(ToolStripItem item) => owner.Controls.Remove(item); public void RemoveAt(int index) => owner.Controls.RemoveAt(index); } }