C# 菜单栏控件
菜单栏是Windows窗体程序的重要组成部分,其作用是为Windows窗体程序提供分组的命令选项,供用户进行选择和执行。
1 菜单栏介绍
在Visual Studio 2010中,使用MenuStrip控件定义应用程序的菜单栏,该控件可以对应用程序命令分组处理,使其更容易被访问。
为应用程序创建菜单栏,可以先创建窗体,然后再在【工具箱】中选择【菜单和工具栏】选项卡,选择【MenuStrip】选项,拖动MenuStrip到窗体中。
在Visual Studio中,开发者除了可以将命令添加到菜单栏中,还可以添加几种复合控件。将鼠标光标置于新菜单项名称上方,此时该文本域中将显示一个下拉菜单的按钮。在表9-1中,包含4种控件类型,其作用如下所示。
表9-1 菜单中允许添加的控件
控件名 | 作用 |
MenuItem | 子菜单控件,与选中菜单项后在右侧添加的子菜单相同 |
ComboBox | 内嵌菜单控件,与下拉列表控件相同,在菜单中嵌入一个内部的下拉列表 |
Separator | tool工具箱分隔线控件,在当前位置添加一个水平分隔线 |
TextBox | 输入文本域控件,允许用户输入文本信息 |
在Windows窗体设计中,菜单项事实上是MenuStrip类的一个实例。该实例派生自System.Windows.Forms命名空间,并继承System.Windows.Forms类的所有成员。MenuStrip控件可以创建支持高级用户界面和布局功能的自定义菜单,例如文本图像排序、对齐和拖放等命令,都可以由MenuStrip类的实例实现。MenuStrip类具有如下几种常用的属性,如表9-2所示。
表9-2 MenuStrip类的常用属性
属性 | 作用 |
MdiWindowListItem | 获取或设置用于显示MDI子窗体列表的ToolStripMenuItem |
IsMdiContainer | 获取或设置窗体是否为MDI子窗体的容器 |
ShowItemToolTips | 获取或设置是否为MenuStrip显示工具提示 |
CanOverFlow | 获取或设置MenuStrip是否支持溢出显示功能 |
ShortcutKey | 获取或设置与ToolStripMenuItem关联的快捷键 |
ShowShortcutKeys | 获取或设置与ToolStripMenuItem关联的快捷键是否显示在ToolStripMenuItem旁边。 |
在程序结构中,菜单项的MenuStrip实例中可以包含若干个菜单命令组,每个菜单命令组都是ToolStripMenuItem类的实例。尽管ToolStripMenuItem是由ToolStripItem派生的,但是在功能上,ToolStripMenuItem与MenuStrip一起工作,实现MenuStrip的具体功能。可以将MenuStrip看作是一个容器,而容器中的成员就是ToolStripMenuItem等子控件。
2 菜单栏应用
下面通过一个实例,来说明MenuStrip控件的使用。该实例中分别向MenuStrip控件中添加了两个三个菜单项并向菜单项中添加子菜单。操作步骤如下所示:
(1)打开Microsoft Visual Studio 2010。在菜单栏中,执行【文件】|【新建项目】命令,打开【新建项目】对话框。
(2)在【新建项目】窗口中,选择“Windows窗体应用程序”并在名称栏中输入项目的名称为“MenuStripTest”。然后,单击【确定】按钮进入可视化编程窗口。
(3)在【属性窗口】中设置各个控件的Name和Text属性并设置Form1的Text属性值为“菜单应用”。
(4)执行【视图】|【工具箱】命令,打开工具箱面板。在工具箱面板中可以选择需要用到的控件。
(5)从【工具箱】的【公共控件】列表中选中MenuStrip控件将其拖放到空白的Windows窗体中。然后,分别向MenuStrip控件中添加了两个三个菜单项并向菜单项中添加子菜单,调整好控件之间的距离以使窗体更加美观,如图8-6所示。
图9-1 设计界面
(6)双击Windows窗体,打开Form1.cs文件。双击菜单项和子菜单项添鼠标事件,代码如下所示。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MenuStripTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void 黄ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.Yellow;
}
private void 白ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.White;
}
private void 绿ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackColor = Color.Green;
}
private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("欢迎进入MenuStrip的世界");
}
}
}
(7)按下【Ctrl+S】键保存源代码,然后执行菜单栏中的【调试】命令或者按下【Ctrl+F5】键查看运行结果。在视图菜单中执行【视图】|【设置背景】|【绿】命令,修改窗体的背景颜,如图9-2所示。修改后的背景颜如图9-3所示。
图9-2 执行命令 图9-3 背景颜
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论