0

如何ToolStripItemCollectionContextMenuStrip. 我以为会像这样简单

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

但这不起作用。

4

2 回答 2

0

相反,在集合中做这样的事情:

public ToolStripItemCollection MenuItems
{
   get { return _Menu.Items; }
   set 
   {
      _Menu.Items.Clear();
      foreach(var elem in value)
      {
         _Menu.Items.Add(elem);
      }
   }
}
于 2013-05-06T14:32:58.830 回答
0

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

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

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

于 2013-05-06T14:38:18.727 回答