Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的WinForms菜单项语法#_C#_Visual Studio_Winforms_Menuitem - Fatal编程技术网

C# C语言中的WinForms菜单项语法#

C# C语言中的WinForms菜单项语法#,c#,visual-studio,winforms,menuitem,C#,Visual Studio,Winforms,Menuitem,我正在尝试编写一个基本的Windows窗体。到目前为止,我已经得到了下面的代码。VisualStudio无法识别任何类似这样的行main menu.MenuItems.Add(itemFile)。每当我使用MenuItems时,程序都不理解,并给我一个错误。我检查了很多网站和教程,它们都使用这种语法,所以我觉得我好像在什么地方犯了错误 using System; using System.Collections.Generic; using System.ComponentModel; usin

我正在尝试编写一个基本的Windows窗体。到目前为止,我已经得到了下面的代码。VisualStudio无法识别任何类似这样的行
main menu.MenuItems.Add(itemFile)。每当我使用MenuItems时,程序都不理解,并给我一个错误。我检查了很多网站和教程,它们都使用这种语法,所以我觉得我好像在什么地方犯了错误

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Form
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            MenuStrip MainMenu = new MenuStrip();
            this.MainMenuStrip = MainMenu;

            ToolStripMenuItem itemFile = new ToolStripMenuItem("&File");
            ToolStripMenuItem itemNew = new ToolStripMenuItem("&New");

            MainMenu.MenuItems.Add(itemFile);
            itemFile.MenuItems.Add(itemNew);

            ToolStripMenuItem itemFolder = new ToolStripMenuItem("&Folder");
            itemNew.MenuItems.Add(itemFolder);

            MainMenu.MenuItems.Add("Save &As");
        }
        
    }
}


正如Hans所说,您错过了winform中的
main菜单
类和
MenuStrip

如果要使用
MenuStrip
,可以参考以下代码创建菜单

        MenuStrip MainMenu = new MenuStrip();
        this.MainMenuStrip = MainMenu;
        ToolStripMenuItem itemFile = new ToolStripMenuItem("&File");
        ToolStripMenuItem itemNew = new ToolStripMenuItem("&New");
        MainMenu.Items.Add(itemFile);
        itemFile.DropDownItems.Add(itemNew);
        ToolStripMenuItem itemFolder = new ToolStripMenuItem("&Folder");
        itemNew.DropDownItems.Add(itemFolder);
        ToolStripMenuItem itemSave = new ToolStripMenuItem("Save &As");
        MainMenu.Items.Add(itemSave);
        ToolStripMenuItem itempc = new ToolStripMenuItem("&This PC");
        itemSave.DropDownItems.Add(itempc);
        ToolStripMenuItem itemC = new ToolStripMenuItem("&C Disk");
        ToolStripMenuItem itemD = new ToolStripMenuItem("&D Disk");
        ToolStripMenuItem itemE = new ToolStripMenuItem("&E Disk");
        itempc.DropDownItems.Add(itemC);
        itempc.DropDownItems.Add(itemD);
        itempc.DropDownItems.Add(itemE);

        Controls.Add(MainMenu);
像这样:

如果要使用
main菜单
,请参考以下代码示例

        MainMenu mainMenu = new MainMenu();
        MenuItem File = mainMenu.MenuItems.Add("&File");
        File.MenuItems.Add(new MenuItem("&New"));
        File.MenuItems.Add(new MenuItem("&Open"));
        File.MenuItems.Add(new MenuItem("&Exit"));
        this.Menu = mainMenu;
        MenuItem About = mainMenu.MenuItems.Add("&About");
        About.MenuItems.Add(new MenuItem("&About"));
        this.Menu = mainMenu;
        mainMenu.GetForm().BackColor = Color.White;
结果:


该代码致命地混合了传统的.NET 1.0主菜单和.NET 2.0菜单类。使用
项目
。并且请考虑使用设计器来实现这一点。它只是避免了更改:<代码> MenuStrip MainMenu =新建MeNeStudio();代码>到此:
var main menu=new MenuStrip()。现在,
main菜单
被声明为一个局部变量(camelCase),因此很难使用与现有类冲突的名称,这些类的首字母大写(Pascal Case)。这样你就能更好地确定问题所在您可以使用IDE的
选项
文本编辑器->C#->代码样式->命名
)强制这些样式。同时检查
常规
部分