8.4 快捷菜单(ContextMenuStrip)
快捷菜单又叫上下文菜单,就是单击右键时弹出的菜单。当右键单击某个关联的控件时,便弹出其快捷菜单(如果存在)。所以需要将快捷菜单与控件进行关联。
编写快捷菜单要用到ContextMenuStrip,该菜单和MenuStrip的使用方式非常相似。程序ContextMenuStripTest演示了快捷菜单的一般使用方式,其创建步骤如下。
(1)打开VS2008,建立一个Windows窗体应用程序,命名为ContextMenuStripTest。
(2)在工具箱中找到ContextMenuStrip控件,并拖放至Form1窗体。
(3)设计菜单内容,如图8-27所示。
(4)具体设计包括Text属性和Name属性,如表8-6所示。
表8-6 设置快捷菜单属性
[TR]
[TD]
菜 单 名
[/TD]
[TD]
Text属性值
[/TD]
[TD]
Name属性值
[/TD][/TR]
[TR]
[TD]
蓝色背景
[/TD]
[TD]
蓝色背景&L
[/TD]
[TD]
BlueBack
[/TD][/TR]
[TR]
[TD]
红色背景
[/TD]
[TD]
红色背景&H
[/TD]
[TD]
RedBack
[/TD][/TR]
[TR]
[TD]
黑色背景
[/TD]
[TD]
黑色背景&B
[/TD]
[TD]
BlackBack
[/TD][/TR]
(5)将contextMenuStrip1与窗体关联。方法是先选定Form1,为其ContextMenuStrip属性设置属性值为“contextMenuStrip1”,如图8-28所示。
[TR]
[TD][I]498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=507 alt="" src="http://pic.aIhUaU.com/201602/15/160300416.jpg" width=700 border=0>[/TD][/TR]
[TR]
[TD](点击查看大图)图8-27 快捷菜单设计界面[/TD][/TR]
[TR]
[TD][I]498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=215 alt="" src="http://pic.aIhUaU.com/201602/15/160506281.jpg" width=241 border=0>[/TD][/TR]
[TR]
[TD]图8-28 将快捷菜单与控件关联
[/TD][/TR](5)双击“蓝色背景”菜单项,为其添加如下代码。
[TR]
[TD]private void BlueBack_Click(object sender, EventArgs e)
{
this.BackColor = Color.Blue;
}[/TD][/TR]
该方法将窗体背景颜色设置为蓝色,Color.Blue表示蓝色。
(6)双击“红色背景”菜单项,为其添加如下代码。
[TR]
[TD]private void RedBack_Click(object sender, EventArgs e)
{
this.BackColor = Color.Red;
}
[/TD][/TR]
该方法将窗体背景颜色设置为红色,Color.Red表示红色。
(7)双击“黑色背景”菜单项,为其添加如下代码。
[TR]
[TD] private void BlackBack_Click(object sender, EventArgs e)
{
this.BackColor = Color.Black;
}[/TD][/TR]
该方法将窗体背景颜色设置为黑色,Color.Black表示黑色。
上述程序的完整代码如下。
[TR]
[TD]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace ContextMenuTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void BlackBack_Click(object sender, EventArgs e)
{
this.BackColor = Color.Blue; //设置为蓝色背景
}
private void RedBack_Click(object sender, EventArgs e)
{
this.BackColor = Color.Red; //设置为红色背景
}
private void BlackBack_Click_1(object sender, EventArgs e)
{
this.BackColor = Color.Black; //设置为黑色背景
}
}
}[/TD][/TR]运行程序,右键单击窗体,得到如图8-29中左图所示结果。单击其中的菜单项,如“蓝色背景”,得到如图8-29中右图所示结果。
[TR]
[TD][I]498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=300 alt="" src="http://pic.aIhUaU.com/201602/15/160651861.jpg" width=609 border=0>[/TD][/TR]
[TR]
[TD]图8-29 程序运行结果[/TD][/TR]