【发布时间】:2015-02-22 21:22:05
【问题描述】:
我正在使用 Visual Studio 创建一个 Windows 窗体项目。
我的项目的解决方案资源管理器中没有表单类 - 我即时构建所有表单。所以我没有机会在 Visual Studio 或工具箱中打开设计器。
但我想创建一个 ContextMenuStrip 并在设计器中对其进行编辑。我通常通过将 ContextMenuStrip 从 ToolBox 拖到 Designer 上来做到这一点。但是,如果不先创建表单或用户控件,我没有任何方法(我可以说)打开设计器。
如何在设计器中编辑 ContextMenuStrip 而无需先将其与表单或用户控件相关联?
需要明确 - 我知道如何在代码中动态生成 ContextMenuStrip。那不是我想要的。我想使用设计器来创建和编辑 ContextMenuStrip,而不必先将 ContextMenuStrip 与我不会包含在我的项目中的表单或用户控件相关联。
(Visual Studio 2013 Pro,如果重要的话)
【问题讨论】:
-
我不太清楚你的意思 - 但也许 property grid control 会做你想做的事
-
你不能,你需要一个表单或用户控件。
-
@LasseV.Karlsen - 所以...我在 VS 中创建了一个用户控件,并在设计器中为该控件添加了一个上下文菜单,然后对其进行编辑;然后在我的“即时构建表单”代码中,我实例化用户控件,不要将用户控件添加到表单中,然后将 form.ContextMenuStrip 设置为 myUserControl.ContextMenuStrip?
-
我不能说这是否行得通,我只能说 Visual Studio 中的设计器不是为设计独立控件或组件而设计的,它是为设计表单和用户控件而设计的。我无法告诉您,您是否可以使用未添加到表单的用户控件中的 contextmenustrip,您只需要进行试验即可。
-
@GrantWinney - 表单是我动态创建的窗口,上面有一个用户控件 - 一个绘图表面。这就是为什么它们不作为预制类存在的原因。同时 - 单独 - ContextMenuStrip 是 Decorator 类的一部分,各种消费者添加到绘图控件中,以在不同时间为其提供不同的功能。 Decorator 类中没有用户控件,因此除了运行时代码之外无法提供 ContextMenuStrip。
标签: c# winforms visual-studio