在 Visual C# 中移动菜单

Eli*_*lie 4 c# visual-studio-2008 visual-studio

我有一个具有以下结构的菜单(为了说明目的而简化):

Menu Bar
 |--File
 |   |--Save
 |   |--Exit
 |--Tools
 |   |--Tool Category 1
 |   |--Tool Category 2
 |   |--Tool Category 3
 |--Help
     |--About
Run Code Online (Sandbox Code Playgroud)

我想将其重建如下:

Menu Bar
 |--File
 |   |--Save
 |   |--Exit
 |--Tool Category 1
 |--Tool Category 2
 |--Tool Category 3
 |--Help
     |--About
Run Code Online (Sandbox Code Playgroud)

但是,在 Visual Studio 2008 Pro 中,除了在它们所在的特定菜单组中重新组织它们之外,它不会让我拖动这些菜单项。有没有办法在不完全重建菜单栏的情况下移动它们?请注意,实际上菜单项比我展示的要多得多。

小智 5

您还可以转到菜单项的设计器代码。您将找到类似于以下内容的代码:

       this.mnuInfo.Items.AddRange(
          new System.Windows.Forms.ToolStripItem[] {
             this.mniAddNewProject,
             this.mniAddNewWorkFlow,      
             this.mniDeleteProject
          }
       );
Run Code Online (Sandbox Code Playgroud)

添加要将现有菜单项移动到其中的菜单项,然后修改然后移动这些项目。

       this.mnuInfo.Items.AddRange(
          new System.Windows.Forms.ToolStripItem[] {
             this.mniAddNewProject
          }
       );
       this.newMenuItem.Items.AddRange(
          new System.Windows.Forms.ToolStripItem[] {
             this.mniAddNewWorkFlow,      
             this.mniDeleteProject
          }
       );
Run Code Online (Sandbox Code Playgroud)

就是这样。我希望这有帮助。


Voj*_*vic 2

我尝试了这个并且它有效:

  1. 右键单击要移动的菜单项
  2. 在上下文菜单中选择“剪切”
  3. 右键单击要移动的菜单栏
  4. 在上下文菜单中选择“粘贴”

希望能帮助到你。

  • 这确实“有效”,但根据我的经验(VS2010),它会删除 Click 事件的内容(还有其他事情??)。剪切比复制效果好得多,因为它保留了控件的名称等,但我怀疑手动编辑代码效果最好。 (2认同)