【发布时间】:2014-11-04 06:46:35
【问题描述】:
我正在尝试为ToolStripMenuItem 构建一个检查列表,该列表自动处理项目的检查和取消检查,然后我向程序员提供一个事件,允许他们处理接下来发生的事情。如果这样的东西已经存在,我很想知道它在哪里。我已经为我的自定义 ToolStripMenuItem 创建了集合编辑器,我可以将检查列表添加到这个清单集合中。我的问题是你像这样创建集合编辑器:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
Editor(typeof(ToolStripItemExtCollectionEditor), typeof(UITypeEditor))]
我需要能够将此ToolStripMenuItem 的DropDownitems 传递给此集合编辑器,这样当您添加新清单并单击清单的项目属性时,您可以添加/删除任何一个已知的 ToolStripMenuItems到/从清单。传递引用是行不通的,因为所有这些都发生在属性内部,如果答案是反射,我不知道从哪里开始。
【问题讨论】:
-
从哪里开始:在
ToolStripItemExtCollectionEditor类中设置一些断点,然后检查那里的值。 -
到目前为止,我发现选择组件会启动对集合编辑器的构造函数的调用,并在打开集合时调用 CreateNewItemTypes()。有没有办法调试我的设计器?如果我能做到,我也许可以看到谁在调用属性构造函数。
-
也许您可以启动第二个 VS 实例,并将调试器连接到它。我知道这适用于 Expression Blend。
-
不幸的是,我碰到了 VB Express 的能力墙。 DX 我确实找到了这个link。我的作品阻止了论坛帖子中的链接,所以我不知道这种解决方法是否有效。我确实有 SharpDevelop,你可以用它“附加到处理”。我不知道如何调试它的另一个实例。
标签: c# winforms windows-forms-designer collectioneditor design-time-data