Make ToolStripItemCollection Property

本文关键字:Property ToolStripItemCollection Make | 更新日期: 2023-09-27 18:12:23

如何为ContextMenuStrip创建ToolStripItemCollection属性?我原以为会这么简单的

ContextMenuStrip _Menu = new ContextMenuStrip();
public ToolStripItemCollection MenuItems
{
    get { return _Menu.Items; }
    set { _Menu.Items = value; }
}

但是这不起作用

Make ToolStripItemCollection Property

在set中这样做:

public ToolStripItemCollection MenuItems
{
   get { return _Menu.Items; }
   set 
   {
      _Menu.Items.Clear();
      foreach(var elem in value)
      {
         _Menu.Items.Add(elem);
      }
   }
}

ToolStripItemCollection是一个可变类型,这意味着您可以从现有实例中添加和删除项。

你应该把你的属性设置为只读;调用者不应该能够创建集合的新实例来替换旧实例。

如果您希望它与设计器一起工作,您还需要添加[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]