向 Windows 窗体添加菜单和菜单项
2016-01-21 06:34
411 查看
Windows 窗体上的菜单是使用 MainMenu 对象创建的,该对象是一个 MenuItem 对象集合。可以在设计时向 Windows 窗体添加菜单,方法是添加MainMenu 组件然后使用菜单设计器向其追加菜单项。还可以用编程方法添加菜单,方法是向 Windows 窗体添加一个或多个 MainMenu 对象并向该集合中添加 MenuItem 对象。本主题中的过程说明如何使用菜单设计器或代码创建一个名为
File 的简单菜单。
在设计时向 Windows 窗体添加菜单
在 Windows 窗体设计器中打开要将菜单添加到的窗体。
在“工具箱”中双击 MainMenu 组件。
一个菜单被添加到窗体中(该窗体显示文本“请在此处输入”),同时 MainMenu 组件添加到了组件栏中。
以编程方式向 Windows 窗体添加菜单
在代码编辑器中,创建一个新公共方法,其中包含将菜单添加到窗体的代码。有关打开代码编辑器的更多信息,请参见在设计器中显示 Windows 窗体。
在该方法内添加类似于以下内容的代码,以创建 MainMenu 组件的实例:
将 MainMenu 组件添加到 Windows 窗体后,需要向其添加菜单项。菜单设计器可让您在设计时向菜单组件添加菜单项。菜单内容保存在一个集合内,所以可在运行时通过向此集合添加 MenuItem 对象来向菜单添加菜单项。
在设计时向菜单添加菜单项
单击 Windows 窗体上的 MainMenu 组件。
显示文本“请在此处输入”。
单击显示的文本,然后键入所需菜单项的名称以添加它。
若要添加另一个菜单项,请单击“菜单设计器”内的另一个“请在此处输入”区域。
单击当前菜单项右侧的区域以添加子菜单。
- 或 -
单击当前菜单项下方的区域,以便将另一个项添加到同一菜单中。
以编程方式向菜单添加菜单项
如果还没有 MainMenu 组件,则向公共方法内的 Windows 窗体添加一个 MainMenu 组件,并将一个 MainMenu 类的实例分配给该窗体的Menu 属性。有关集合的更多信息,请参见对象之间的关系。
在该方法内,创建要添加到 MainMenu 对象的集合中的 MenuItem 对象:
注意 默认情况下,MainMenu 对象不包含菜单项,所以添加的第一个菜单项成为菜单标题。这就是
在该方法内,分配顶级菜单项并向其添加后面的菜单项:
注意 若要创建子菜单,可将 MenuItem 对象添加到父 MenuItem 的 MenuItems 属性中。对于上面的示例,如果希望将第三个菜单项 (
作为第二个菜单项 (
菜单项也可在创建时动态添加,属性也是这样,可在创建和添加菜单项时设置。例如,若要向上面的集合中添加第四个菜单项,请输入下列代码:
有关向 MenuItems 集合中添加菜单项时动态创建菜单项的更多信息,请参见 Menu.MenuItemCollection
类。
最后,建立菜单结构后,需要为菜单项提供功能。通常需要通过 MenuItem.Click 事件的事件处理程序做到这一点。有关事件处理程序的更多信息,请参见 Windows
窗体中事件处理程序的介绍。
File 的简单菜单。
在设计时向 Windows 窗体添加菜单
在 Windows 窗体设计器中打开要将菜单添加到的窗体。
在“工具箱”中双击 MainMenu 组件。
一个菜单被添加到窗体中(该窗体显示文本“请在此处输入”),同时 MainMenu 组件添加到了组件栏中。
以编程方式向 Windows 窗体添加菜单
在代码编辑器中,创建一个新公共方法,其中包含将菜单添加到窗体的代码。有关打开代码编辑器的更多信息,请参见在设计器中显示 Windows 窗体。
' Visual Basic Public Sub AddMenu() End Sub // C# public void AddMenu(){ } // C++ public: void AddMenu() { }
在该方法内添加类似于以下内容的代码,以创建 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 对象来向菜单添加菜单项。
在设计时向菜单添加菜单项
单击 Windows 窗体上的 MainMenu 组件。
显示文本“请在此处输入”。
单击显示的文本,然后键入所需菜单项的名称以添加它。
若要添加另一个菜单项,请单击“菜单设计器”内的另一个“请在此处输入”区域。
单击当前菜单项右侧的区域以添加子菜单。
- 或 -
单击当前菜单项下方的区域,以便将另一个项添加到同一菜单中。
以编程方式向菜单添加菜单项
如果还没有 MainMenu 组件,则向公共方法内的 Windows 窗体添加一个 MainMenu 组件,并将一个 MainMenu 类的实例分配给该窗体的Menu 属性。有关集合的更多信息,请参见对象之间的关系。
' Visual Basic Public Sub AddMenuAndItems() Dim mnuFileMenu as New MainMenu() Me.Menu = mnuFileMenu End Sub // C# public void AddMenuAndItems(){ MainMenu mnuFileMenu = new MainMenu(); this.Menu = mnuFileMenu; } // C++ public: void AddMenu() { MainMenu *mnuFileMenu = new MainMenu(); this->Menu = mnuFileMenu; }
在该方法内,创建要添加到 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的原因。
在该方法内,分配顶级菜单项并向其添加后面的菜单项:
' 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 Basic Dim 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 Basic mnuFileMenu.MenuItems.Add("Save &As") // C# mnuFileMenu.MenuItems.Add("Save &As"); // C++ mnuFileMenu->MenuItems->Add("Save &As");
有关向 MenuItems 集合中添加菜单项时动态创建菜单项的更多信息,请参见 Menu.MenuItemCollection
类。
向菜单项添加功能
最后,建立菜单结构后,需要为菜单项提供功能。通常需要通过 MenuItem.Click 事件的事件处理程序做到这一点。有关事件处理程序的更多信息,请参见 Windows窗体中事件处理程序的介绍。
相关文章推荐
- 资深谷歌安卓工程师对安卓应用开发的建议
- Leetcode 21 - Merge Two Sorted Lists
- 安卓popupwindow弹出窗体的使用
- go get安装第三方包的前提条件和步骤
- Leetcode 20 - Valid Parentheses
- Leetcode 18 - 4Sum
- go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )
- C# lambda
- KMP
- Leetcode 130. Surrounded Regions
- 185_K-th NUmber 线段树 (POJ2104)
- Python 装饰器笔记
- Leetcode 200. Number of Islands
- 对结合BDD进行DDD开发的一点思考和整理
- LNMP环境搭建
- cf#gb2015-C. New Year and Domino-dp
- cf#gb2015-B - New Year and Old Property-暴力
- Leetcode 328. Odd Even Linked List
- 阿里云 CentOS下面 Mysql 数据迁移
- 第六章 学习笔记