向 Windows 窗体添加菜单和菜单项

来源:互联网 发布:python 汉字转url编码 编辑:程序博客网 时间:2024/05/29 04:21

Windows 窗体上的菜单是使用 MainMenu 对象创建的,该对象是一个 MenuItem 对象集合。可以在设计时向 Windows 窗体添加菜单,方法是添加MainMenu 组件然后使用菜单设计器向其追加菜单项。还可以用编程方法添加菜单,方法是向 Windows 窗体添加一个或多个 MainMenu 对象并向该集合中添加 MenuItem 对象。本主题中的过程说明如何使用菜单设计器或代码创建一个名为 File 的简单菜单。

在设计时向 Windows 窗体添加菜单

  1. 在 Windows 窗体设计器中打开要将菜单添加到的窗体。
  2. 在“工具箱”中双击 MainMenu 组件。

    一个菜单被添加到窗体中(该窗体显示文本“请在此处输入”),同时 MainMenu 组件添加到了组件栏中。

以编程方式向 Windows 窗体添加菜单

  1. 在代码编辑器中,创建一个新公共方法,其中包含将菜单添加到窗体的代码。有关打开代码编辑器的更多信息,请参见在设计器中显示 Windows 窗体。
    ' Visual BasicPublic Sub AddMenu()End Sub// C#public void AddMenu(){}// C++public:   void AddMenu()   {   }
  2. 在该方法内添加类似于以下内容的代码,以创建 MainMenu 组件的实例:
    ' Visual Basic   Dim mnuFileMenu as New MainMenu()   Me.Menu = mnuFileMenu// C#   MainMenu mnuFileMenu = new MainMenu();   this.Menu = mnuFileMenu;// C++   MainMenu *mnuFileMenu = new MainMenu();   this->Menu = mnuFileMenu;

将 MainMenu 组件添加到 Windows 窗体后,需要向其添加菜单项。菜单设计器可让您在设计时向菜单组件添加菜单项。菜单内容保存在一个集合内,所以可在运行时通过向此集合添加 MenuItem 对象来向菜单添加菜单项。

在设计时向菜单添加菜单项

  1. 单击 Windows 窗体上的 MainMenu 组件。

    显示文本“请在此处输入”。

  2. 单击显示的文本,然后键入所需菜单项的名称以添加它。
  3. 若要添加另一个菜单项,请单击“菜单设计器”内的另一个“请在此处输入”区域。
    • 单击当前菜单项右侧的区域以添加子菜单。

      - 或 -

    • 单击当前菜单项下方的区域,以便将另一个项添加到同一菜单中。

以编程方式向菜单添加菜单项

  1. 如果还没有 MainMenu 组件,则向公共方法内的 Windows 窗体添加一个 MainMenu 组件,并将一个 MainMenu 类的实例分配给该窗体的Menu 属性。有关集合的更多信息,请参见对象之间的关系。
    ' Visual BasicPublic Sub AddMenuAndItems()   Dim mnuFileMenu as New MainMenu()   Me.Menu = mnuFileMenuEnd Sub// C#public void AddMenuAndItems(){   MainMenu mnuFileMenu = new MainMenu();   this.Menu = mnuFileMenu;}// C++public:   void AddMenu()   {      MainMenu *mnuFileMenu = new MainMenu();      this->Menu = mnuFileMenu;   }
  2. 在该方法内,创建要添加到 MainMenu 对象的集合中的 MenuItem 对象:
    ' Visual Basic   Dim myMenuItemFile as New MenuItem("&File")   Dim myMenuItemNew as New MenuItem("&New")// C#   MenuItem myMenuItemFile = new MenuItem("&File");   MenuItem myMenuItemNew = new MenuItem("&New");// C++   MenuItem *myMenuItemFile = new MenuItem(S"&File");   MenuItem *myMenuItemNew = new MenuItem(S"&New");
    注意   默认情况下,MainMenu 对象不包含菜单项,所以添加的第一个菜单项成为菜单标题。这就是 myMenuItemFile 的 Text属性设置为 &File 的原因。
  3. 在该方法内,分配顶级菜单项并向其添加后面的菜单项:
    ' Visual Basic   mnuFileMenu.MenuItems.Add(myMenuItemFile)   myMenuItemFile.MenuItems.Add(myMenuItemNew)// C#   mnuFileMenu.MenuItems.Add(myMenuItemFile);   myMenuItemFile.MenuItems.Add(myMenuItemNew);// C++   mnuFileMenu->MenuItems->Add(myMenuItemFile);   myMenuItemFile->MenuItems->Add(myMenuItemNew);
    注意   若要创建子菜单,可将 MenuItem 对象添加到父 MenuItem 的 MenuItems 属性中。对于上面的示例,如果希望将第三个菜单项 (myMenuItemFolder) 作为第二个菜单项 (myMenuItemNew) 的子菜单添加,则应包括下列代码行:
    ' Visual BasicDim myMenuItemFolder as New MenuItem("&Folder")myMenuItemNew.MenuItems.Add(myMenuItemFolder)// C#MenuItem myMenuItemFolder = new MenuItem("&Folder");myMenuItemNew.MenuItems.Add(myMenuItemFolder);// C++MenuItem *myMenuItemFolder = new MenuItem(S"&Folder");myMenuItemNew->MenuItems->Add(myMenuItemFolder);

    菜单项也可在创建时动态添加,属性也是这样,可在创建和添加菜单项时设置。例如,若要向上面的集合中添加第四个菜单项,请输入下列代码:

    ' Visual BasicmnuFileMenu.MenuItems.Add("Save &As")// C#mnuFileMenu.MenuItems.Add("Save &As");// C++mnuFileMenu->MenuItems->Add("Save &As");

有关向 MenuItems 集合中添加菜单项时动态创建菜单项的更多信息,请参见 Menu.MenuItemCollection 类。

向菜单项添加功能

最后,建立菜单结构后,需要为菜单项提供功能。通常需要通过 MenuItem.Click 事件的事件处理程序做到这一点。有关事件处理程序的更多信息,请参见 Windows 窗体中事件处理程序的介绍。

0 0
原创粉丝点击