科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用C#设计Windows应用程序模板(3)

用C#设计Windows应用程序模板(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

要找到没有菜单的windows应用程序非常困难,菜单使访问应用程序的功能变得很简单,在大多数环境下可以最小的使用控件。菜单比控件占用更少的空间,同时使应用程序显得更有组织。

来源:soft6 2008年5月16日

关键字: 模版 设计 C# Windows

  • 评论
  • 分享微博
  • 分享邮件

添加菜单和菜单项

要找到没有菜单的windows应用程序非常困难,菜单使访问应用程序的功能变得很简单,在大多数环境下可以最小的使用控件。菜单比控件占用更少的空间,同时使应用程序显得更有组织。

在System.Windows.Forms名称空间中,所有与菜单相关的控件都是menu类的子类。menu是一个抽象类,你不能直接实例化,menu类有三个子类:

ContextMenu
MainMenu
MenuItem 


ContextMenu类表示快捷菜单,在控件或窗体区域点击鼠标右键时显示。快捷菜单常用于组合窗体mainmenu类的菜单项给出应用程序的上下文,这对于用户时非常有用的。

MainMenu表示传统的位于窗体顶部的菜单,你可以把它看成窗体菜单结构的容器。一个菜单是由MenuItem表示的菜单项组成的,对于应用程序而言每一个菜单项是一个命令或其它子菜单项的父菜单。form类都有一个menu属性,采用将mainmenu对象赋给menu属性的方式将mainmenu对象绑定到窗体。

在这个模板中,我们没有使用ContextMenu类,但我们示范了如何使用MainMenu和MenuItem类。我们首先需要在窗体中添加一个菜单,给窗体添加一个MainMenu对象。

MainMenu mainMenu = new MainMenu(); 


现在MainMenu对象中什么都没有,下面我们给他添加一个MenuItem对象。在List1中主菜单称为fileMenuItem,它的text属性是&File,&表示他后面的字母带下划线,是该菜单的快捷键。通过使用Menu对象的MenuItemCollection的add方法为MainMenu添加一个或几个MenuItem,这个集合可以通过menu类的MenuItems属性访问。

MenuItem fileMenuItem = new MenuItem();
mainMenu.MenuItems.Add(fileMenuItem); 


我们在fileMenuItem 菜单项中还添加了其它MenuItem,这些MenuItem是fileMenuItem的子菜单。你也可以给子菜单添加子菜单。图2显示了菜单的等级结构。

---------图2---------

菜单项的声明如下:

MenuItem fileNewMenuItem;

MenuItem fileOpenMenuItem;

MenuItem fileSaveMenuItem;

MenuItem fileSaveAsMenuItem;

MenuItem fileMenuWithSubmenu;

MenuItem submenuMenuItem;

MenuItem fileExitMenuItem;
MenuItem类有几个构造函数,使用这些构造函数实例化你的 MenuItem对象,并添加一个事件处理器。
// the following constructor is the same as:

// menuItem fileNewMenuItem = new MenuItem();

// fileNewMenuItem.Text = "&New";

// fileNewMenuItem.Shortcut = Shortcut.CtrlN;

// fileNewMenuItem.Click += new

// System.EventHandler(this.fileNewMenuItem_Click);

fileNewMenuItem = new MenuItem("&New",

new System.EventHandler(this.fileNewMenuItem_Click), Shortcut.CtrlN);
fileOpenMenuItem = new MenuItem("&Open",

new System.EventHandler(this.fileOpenMenuItem_Click), Shortcut.CtrlO);
fileSaveMenuItem = new MenuItem("&Save",

new System.EventHandler(this.fileSaveMenuItem_Click),
Shortcut.CtrlS);

fileSaveAsMenuItem = new MenuItem("Save &As",

new System.EventHandler(this.fileSaveAsMenuItem_Click));
fileMenuWithSubmenu = new MenuItem("&With Submenu");
submenuMenuItem = new MenuItem("Su&bmenu",

new System.EventHandler(this.submenuMenuItem_Click));
fileExitMenuItem = new MenuItem("E&xit",

new System.EventHandler(this.fileExitMenuItem_Click));
Event handling is discussed further in the section "Adding Event Handlers."
As mentioned, the menu items are added to the fileMenuItem control.
fileMenuItem.MenuItems.Add(fileNewMenuItem);

fileMenuItem.MenuItems.Add(fileOpenMenuItem);

fileMenuItem.MenuItems.Add(fileSaveMenuItem);

fileMenuItem.MenuItems.Add(fileSaveAsMenuItem);

fileMenuItem.MenuItems.Add(fileMenuWithSubmenu);

fileMenuWithSubmenu.MenuItems.Add(submenuMenuItem);

fileMenuItem.MenuItems.Add("-"); // add a separator

fileMenuItem.MenuItems.Add(fileExitMenuItem);
注意在菜单项之间可以创建一个分隔符,方法是使用menu类的MenuItems集合的add方法。上面的例子中使用的分隔符是"-"。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章