ToolStripItemCollection.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System.Collections;
  2. namespace System.Windows.Forms
  3. {
  4. public class ToolStripItemCollection : WrappedCollection
  5. {
  6. private Control owner;
  7. internal ToolStripItemCollection(Control owner) => this.owner = owner;
  8. protected override IList InnerList => owner.Controls;
  9. public ToolStripItem this[int index] => owner.Controls[index] as ToolStripItem;
  10. public int Add(ToolStripItem item)
  11. {
  12. var result = owner.Controls.Add(item);
  13. item.SetOwnerItem(owner as ToolStripItem);
  14. item.ResetImage();
  15. item.ApplyStyle();
  16. return result;
  17. }
  18. public void AddRange(ToolStripItem[] items)
  19. {
  20. foreach (ToolStripItem item in items)
  21. Add(item);
  22. }
  23. public void Insert(int index, ToolStripItem item)
  24. {
  25. owner.Controls.Insert(index, item);
  26. item.SetOwnerItem(owner as ToolStripItem);
  27. item.ResetImage();
  28. item.ApplyStyle();
  29. }
  30. public int IndexOf(ToolStripItem item) => owner.Controls.IndexOf(item);
  31. public void Clear() => owner.Controls.Clear();
  32. public bool Contains(ToolStripItem item) => owner.Controls.Contains(item);
  33. public void Remove(ToolStripItem item) => owner.Controls.Remove(item);
  34. public void RemoveAt(int index) => owner.Controls.RemoveAt(index);
  35. }
  36. }