RSS
热门关键字:  数据挖掘  人工智能  数据仓库  搜索引擎  数据挖掘导论

用C#和VB.NET实现Office XP风格的菜单(1)_领先的中文.网站

来源: 作者: 时间:2007-05-25 点击:

这篇文章中我会介绍有关在Framework SDK Beta 2 中制作自己风格的菜单,所以你最好已安装了Framework SDK Beta 2,VS.NET Beta 2 不一定是必须的。附带的Zip包中的例子都是VS.NET Project的。

整个的文章包括三部分:

数据挖掘实验室

1.Framework SDK Beta 2中菜单分成两类一类是普通的菜单叫:MainMenu,在VS.NET的Toolsbox中有这样一个对应的菜单控件,拖下它到你的窗体中,设置一下属性就可以所见所得了,这个版本的比VS.Studio98 系列的要好用和漂亮的多。另一类叫:ContextMenu菜单,也就是常用的弹出菜单。对于VB6来说所有的普通菜单在VS.NET中是可以兼容和自动升级成MainMenu类型的菜单,但对于PopMenu的菜单是不能转换成ContextMenu类型的菜单,你必须自己重新修改代码实现。这里我们主要是针对MainMenu的,其实原理一样。

数据挖掘研究院

最简单的菜单你可以这样做:

using System;

using System.Windows.Forms;

数据挖掘研究院

public class frmVB6 : Form { 数据挖掘研究院

数据挖掘研究院

private MainMenu muMain ; // MainMenu 数据挖掘研究院

数据挖掘实验室

public static int Main(string[] Args) { 数据挖掘研究院

Application.Run(new frmVB6()); 数据挖掘研究院

return 0; 数据挖掘研究院

} 数据挖掘研究院

public frmVB6() { 数据挖掘研究院

数据挖掘研究院

// The following code sets up the form properties. 数据挖掘研究院

this.Text = "Form1"; 数据挖掘研究院

this.Height = 213 + SystemInformation.CaptionHeight;

this.Width = 312;

this.StartPosition = FormStartPosition.WindowsDefaultLocation; 数据挖掘研究院

数据挖掘研究院

MenuItem mItemFile = new MenuItem() ; 数据挖掘研究院

mItemFile.Text = "&File" ;

MenuItem mItemExit = new MenuItem() ;

mItemExit.Text = "E&xit" ;

数据挖掘研究院

数据挖掘研究院

muMain = new MainMenu() ; 数据挖掘研究院

muMain.MenuItems.Add( mItemFile ) ; 数据挖掘研究院

muMain.MenuItems.Add( mItemExit) ;

数据挖掘研究院

this.Menu = muMain ;

数据挖掘研究院

}} 数据挖掘研究院

手工方式保存它为一个.cs文件然后在编译它: 数据挖掘研究院

csc /t:winexe /r:System.dll /r:System.Windows.Forms.Dll /r:System.Drawing.Dll Form1Menu.cs 数据挖掘研究院

VS.NET下只用New一个新的WinForm项目,然后在默认窗体中放入MainMenu控件,然后设置完属性,F5就可以了,完全不用一行代码。 数据挖掘研究院

如果要生成一个主菜单和一个菜单的子菜单项目,主要是MenuItems.AddRange的方法,看下面的代码:

数据挖掘实验室

this.mainMenu1 = new System.Windows.Forms.MainMenu();

数据挖掘研究院

this.menuItem1 = new System.Windows.Forms.MenuItem(); 数据挖掘实验室

this.menuItem2 = new System.Windows.Forms.MenuItem();

数据挖掘研究院

this.menuItem3 = new System.Windows.Forms.MenuItem();

this.menuItem4 = new System.Windows.Forms.MenuItem(); 数据挖掘研究院

// mainMenu1 数据挖掘研究院

this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { 数据挖掘实验室

this.menuItem1, this.menuItem2}); 数据挖掘实验室

数据挖掘研究院

// menuItem1 数据挖掘研究院

this.menuItem1.Index = 0;

this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { 数据挖掘实验室

this.menuItem3, this.menuItem4});

this.menuItem1.Index = 0 ;

this.menuItem1.Text = "&File";

数据挖掘研究院

// menuItem2 数据挖掘实验室

this.menuItem2.Index = 1;

this.menuItem2.Text = "Help"; 数据挖掘研究院

数据挖掘研究院

// menuItem3

this.menuItem3.Index = 0; 数据挖掘实验室

this.menuItem3.Text = "Open"; 数据挖掘实验室

this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click); 数据挖掘研究院

数据挖掘研究院

// menuItem4 数据挖掘研究院

this.menuItem4.Index = 1;

数据挖掘研究院

this.menuItem4.Text = "Exit"; 数据挖掘实验室

this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);

数据挖掘研究院

this.Menu = this.mainMenu1;

数据挖掘实验室

如代码所示MenuItem1(File)和MenuItem2(Help)被AddRange到MainMenu1中成为了顶级的菜单,MenuItem3(Open)和MenuItem4(Exit)被AddRange到MenuItem1(File)中成为了File菜单下的子菜单项。

this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);表明MenuItem3点击时激发的事件处理程序,一般的事件处理程序象下面这样: 数据挖掘实验室

private void menuItem3_Click(object sender, System.EventArgs e) 数据挖掘研究院

{MessageBox.Show ( " My Click Open" ) ;

} 数据挖掘研究院

数据挖掘实验室

我们关心的其实是MenuItem,让它用我们的方式画出有VS.NET或XP风格的菜单就可以了,更简单的说就是实现一个MenuItem的继承类,扩展它Draw的部分。好吧,让我们深入一点看看第二部分。 数据挖掘实验室


共3页: 1 [2] [3] 下一页
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?
热点关注
相关文章