欢迎大家提出意见,一起讨论!
转载请标明是引用于 http://blog.csdn.net/chenyujing1234
需要源码请与我联系。
1、 为菜单添加快捷方式
为菜单项设置快捷方式非常简单,设置菜单项的Text属性时,在菜单项文本添加“&”+“字母”即可,
使用快捷键时,按下Atl键加指定的字母便可以使用快捷键激活菜单项。
设计过程:
在窗口中添加MenuScrip控件。
主要代码如下:
private void 退出QToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("退出应用程序","提示!");
Close();//退出应用程序
}
private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("已经点击\"打开\"菜单项", "提示!");
}
2、 设置菜单项是否可用
菜单可以添加多个菜单项,而菜单项还可以含有多个子菜单项,如果需要禁用菜单中的一部分子菜单要怎么实现呢?
2、1 知识要点
用到了ToolScripMenuItem菜单项Enabled属性。
实现过程:
添加两个按钮:启用菜单项、禁用菜单项。
代码实现为:
private void button1_Click(object sender, EventArgs e)
{
ToolStripMenuItem P_ToolStripMenuItem =//得到菜单项
(ToolStripMenuItem)menuStrip1.Items[0];
foreach (ToolStripMenuItem item in
P_ToolStripMenuItem.DropDownItems)
{
item.Enabled = true;//启用菜单项
}
}
private void button2_Click(object sender, EventArgs e)
{
ToolStripMenuItem P_ToolStripMenuItem =//得到菜单项
(ToolStripMenuItem)menuStrip1.Items[0];
foreach (ToolStripMenuItem item in
P_ToolStripMenuItem.DropDownItems)
{
item.Enabled = false;//停用菜单项
}
}
3、 将菜单项的字体设置为粗体
弹出菜单项可以包含多个菜单项,可能需要着重地显示某些菜单项,那么将字体设置为粗体是不错选择。
3、1 知识点
用到了ToolSctripItem菜单项的Font属性,用来设置菜单项文本内容的字体。
3、2 实现过程
添加一个按钮,用于设置菜单项中字体为粗体
4、 创建级联菜单
4、1 知识点
用到了DropDownItems菜单项集合的Add方法, 用于将指定的菜单项添加到菜单项集合。
4、2 实现过程
程序主要代码为:
private void Form1_Load(object sender, EventArgs e)
{
ToolStripMenuItem P_ts = (ToolStripMenuItem)menuStrip1.Items[0];// 得到文件菜单项
ToolStripMenuItem ts1 = new ToolStripMenuItem("打开文本文件"); // 创建菜单项
ToolStripMenuItem ts2 = new ToolStripMenuItem("打开XML文件"); // 创建菜单项
ToolStripMenuItem ts3 = new ToolStripMenuItem("打开JPG文件"); // 创建菜单项
ToolStripMenuItem ts4 = new ToolStripMenuItem("打开BMP文件"); // 创建菜单项
ToolStripMenuItem P_ts2 = (ToolStripMenuItem)P_ts.DropDownItems[0]; // 得到子菜单项
P_ts2.DropDownItems.Add(ts1); // 添加菜单项
P_ts2.DropDownItems.Add(ts2); // 添加菜单项
P_ts2.DropDownItems.Add(ts3); // 添加菜单项
P_ts2.DropDownItems.Add(ts4); // 添加菜单项
}
5、 级联菜单的动态合并
在MDI应用程序中,当MDI子窗体最大化时,子窗体和主窗体的菜单能够自动地合并。这是怎么实现的呢?
5、1 知识点
用到了ContextMenuStrip 控件中Items集合的AddRange方法。
用于将ToolStripItem控件的数据添加到菜单集合中。
实现过程:
设置窗体的IsMdiContainer属性为true,将窗体设置为多文档窗体;
向窗体中添加一个MenuStrip控件和一个ContextMenuStrip控件,分别用于显示菜单和窗体右键菜单。
注: 在窗体中绑定ContextMenuStrip控件时得为窗体的属性“ContextMenuStrip”选择contextMenuStrip1
相关代码:
private void 打开子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f = new Form2();//创建窗体对象
f.MdiParent = this;//设置父窗体属性
f.Show();//显示窗体
f.Resize += //为窗体添加事件
new EventHandler(f_Resize);
}
void f_Resize(object sender, EventArgs e)
{
Form2 f = (Form2)sender;//得到窗体对象
ToolStripMenuItem item = new ToolStripMenuItem();//创建菜单项
for (int i = 0; i < f.contextMenuStrip2.Items.Count; )//遍历窗体菜单项集合
{
item.DropDownItems.Add(//添加菜单项
f.contextMenuStrip2.Items[i]);
}
this.contextMenuStrip1.Items.AddRange(//向主窗体中添加菜单项集合
new System.Windows.Forms.ToolStripItem[] {
item});
}