菜单是软件界面设计的一个重要组成方面。它描述着一个软件的大致功能和风格。所以在程序设计中处理好、设计好菜单,对于一个软件开发是否成功有着比较重要的意义。
Visual C#是.Net框架中的一个重要组成部分,也是微软公司推出的下一代主流程序开发语言。它在设计、开发程序界面的时候和以前的某些程序开发语言有所不同。这一点也表现在其的菜单编程方面。本文就是来探讨一下如何用Visual C#进行菜单编程。
面向菜单编程中遇到的主要的问题大致可以分为二种:添加菜单项、删除菜单项。当然在处理以上二类问题时候,还会遇到诸如:如何添加菜单项所对应的事件,如何为菜单项添加快捷键等一些小的问题。下面就这些问题来具体进行论述。
一. 程序设计和运行环境:
(1)微软视窗2000服务器版本
(2).Net FrameWork SDK Beta 2
二. 程序的主要功能:
在本程序中,已经定义了二个主菜单项。程序的主要功能是通过"添加菜单"按钮在第二个主菜单项下(即"运行菜单项目"下)加入一个子菜单。通过"删除菜单"按钮删除第二个主菜单项中的最后一个子菜单。下图01是"添加菜单"按钮按动三次后的界面,图02是在"添加按钮"按动三次后,在按动"删除菜单"按钮后的程序运行界面:
图01:"添加菜单"按钮按动三次后的界面
图02:在"添加按钮"按动三次后,在按动"删除菜单"按钮后的界面
三. 菜单设计中遇到的主要问题及解决办法:
(1)如何动态加入一个菜单项目:
在.Net FrameWork SDK中有一个叫做System.Windows.Forms.dll文件,其中定义了一个名为System.Windows.Froms的名称空间,此名称空间中封装了很多和界面设计相关的类、对象。Visual C#在进行菜单编程的时候就需要用到在此名称空间中定义的二个对象:MainMenu、MenuItem。用过Delphi的程序员都知道在在Delphi中,也有MainMenu这个对象,MainMenu在程序设计中表现为菜单项的容器,而MenuItem就是要往这个容器中添加的内容。所以在一个窗体中这种容器往往只需要一个,即需要一个MainMenu,但却往往要多个MenuItem,即需要多个菜单项。通过以下二个例子来具体说明如何进行菜单加入操作:
例01:只是在窗体中加入一个主菜单项目:
using System.Windows.Forms ;
class RuntimeMenus : Form
{
private MainMenu myMenu ;
private MenuItem mnuFile ;
public RuntimeMenus ( )
{
//初始化 Main Menus
myMenu = new MainMenu ( ) ;
mnuFile = new MenuItem ( "文件" ) ;
x = new MenuItem ( "文件" ) ;
//往 Main Menu里面加入菜单
myMenu.MenuItems.Add ( mnuFile ) ;
this.Menu = myMenu ;
}
public static void Main ( )
{
Application.Run ( new RuntimeMenus ( ) ) ;
}
}