我正在使用Visual Studio创建Windows窗体项目。
我的项目的解决方案资源管理器中没有Form类 - 我可以动态构建所有表单。所以我没有机会在Visual Studio或工具箱中打开Designer。
但我想创建一个ContextMenuStrip并在Designer中编辑它。我通常通过将ContextMenuStrip从ToolBox拖到Designer上来完成此操作。但是,我没有任何方法(我可以告诉)在没有首先创建表单或用户控件的情况下打开Designer。
如何在设计器中编辑ContextMenuStrip而不先将其与表单或用户控件相关联?
要清楚 - 我知道如何在代码中动态生成ContextMenuStrip。那不是我想要的。我想使用Designer来创建和编辑ContextMenuStrip,而不必首先将ContextMenuStrip与我将不会包含在我的项目中的表单或用户控件相关联。
(Visual Studio 2013 Pro,如果重要的话)
答案 0 :(得分:0)
我不相信这是可能的,而且我认为这在审查中并不合理。
Designer是一个帮助您构建表单和用户控件的工具。真的是这样的。它可以节省您编写代码以手动创建和绘制控件。它提供了快捷方式和基本自动代码生成的精美图形视图。
您尝试创建的内容既不是新的UserControl
类型,也不是新的Form
类型 - 其中任何一种都可以在Designer中创建。这是一个预先添加了某些东西的菜单条。这不能孤立存在。它需要转换为创建成员并将成员添加到具体ContextMenuStrip
对象的代码。该对象必须住在某个类(Form
或UserControl
)。我不知道它本身是如何存在的。
答案 1 :(得分:0)
相同的问题...新的解决方案...
答案 2 :(得分:0)
您可以将ContextMenuStrip添加到窗体中,然后使用代码修改窗体,以便使用单例类型属性对其进行访问:
public partial class frmContextMenuHost : Form
{
private frmContextMenuHost()
{
InitializeComponent();
}
private static frmContextMenuHost _frmContextMenu = null;
public static ContextMenuStrip GetContextMenu
{
get
{
if (_frmContextMenu == null)
{
_frmContextMenu = new frmContextMenuHost();
}
return _frmContextMenu.contextMenuStrip1;
}
}
}
您打算如何为ContextMenuStrip使用事件?