Windows 窗体支持菜单和上下文菜单。主菜单在菜单栏上显示,菜单栏位于窗体标题栏的紧下方。菜单栏包含用于将相关子菜单项分组的顶级菜单项。例如,通过单击“文件”顶级菜单项,可以显示与文件操作相关的菜单项。菜单项通常显示为应用程序的命令(如“新建”和“打开”),但是它们也可以显示为分隔条和子菜单项。可以在菜单项的旁边显示选中标记,以显示应用程序中命令的状态或功能的状态。在 Windows 窗体中,主菜单由 MainMenu 控件表示。
可为窗体的特定控件或区域显示上下文菜单。通常通过单击鼠标右键访问它们。在 Windows 窗体中,上下文菜单由 ContextMenu 控件表示。
ContextMenu 和 MainMenu 从 Menu 派生。它们共享许多属性、方法和事件。
下面的代码演示如何向窗体添加 MainMenu。
C# source:
MainMenu mainMenu = new MainMenu();
this.Menu = mainMenu;
VB source:
Dim mainMenu As New MainMenu
Me.Menu = mainMenu
向控件添加上下文菜单
下面的代码演示如何创建 ContextMenu 并将其分配到控件。
C#
ContextMenu label1ContextMenu = new ContextMenu();
Label label1 = new Label();
label1.ContextMenu = label1ContextMenu;
VB
Dim label1ContextMenu As New ContextMenu
Dim label1 As New Label
label1.ContextMenu = label1ContextMenu
添加菜单项
在下面的示例中,将 File 菜单项添加到 MainMenu 中。File 菜单项包含名为 Open 和 Exit 的子菜单项。
C#
//Add File Menu
MenuItem miFile = mainMenu.MenuItems.Add("&File");
miFile.MenuItems.Add(new MenuItem("&Open..."));
miFile.MenuItems.Add("-"); // Gives us a seperator
miFile.MenuItems.Add(new MenuItem("E&xit"));
VB
'Add File Menu
Dim miFile As MenuItem = mainMenu.MenuItems.Add("&File")
miFile.MenuItems.Add(new MenuItem("&Open..."))
miFile.MenuItems.Add("-") ' Gives us a seperator
miFile.MenuItems.Add(new MenuItem("E&xit"))
下面的代码演示如何为在前面代码示例中创建的 Open 和 Exit 菜单项处理 Click 事件。
C#
....
//Add File Menu
MenuItem miFile = mainMenu.MenuItems.Add("&File");
miFile.MenuItems.Add(new MenuItem("&Open...", new EventHandler(this.FileOpen_Clicked), Shortcut.CtrlO));
miFile.MenuItems.Add("-"); // Gives us a seperator
miFile.MenuItems.Add(new MenuItem("E&xit", new EventHandler(this.FileExit_Clicked), Shortcut.CtrlX));
....
//File->Exit Menu item handler
private void FileExit_Clicked(object sender, System.EventArgs e) {
this.Close();
}
//File->Open Menu item handler
private void FileOpen_Clicked(object sender, System.EventArgs e) {
MessageBox.Show("And why would this open a file?");
}
....
VB
....
'Add File Menu
Dim miFile As MenuItem = mainMenu.MenuItems.Add("&File")
miFile.MenuItems.Add(new MenuItem("&Open...", new EventHandler(AddressOf Me.FileOpen_Clicked)))
miFile.MenuItems.Add("-") ' Gives us a seperator
miFile.MenuItems.Add(new MenuItem("E&xit", new EventHandler(AddressOf Me.FileExit_Clicked)))
....
'File->Exit Menu item handler
Private Sub FileExit_Clicked(sender As object, e As System.EventArgs)
Me.Close
End Sub
'File->Open Menu item handler
Private Sub FileOpen_Clicked(sender As object, e As System.EventArgs)
MessageBox.Show("And why would this open a file?")
End Sub
....
添加子菜单
下面的示例演示如何创建子菜单。
C#
//Add Format Menu
MenuItem miFormat = mainMenu.MenuItems.Add("F&ormat");
//Font Face sub-menu
mmiSansSerif = new MenuItem("&1. " + sansSerifFontFamily.Name, new EventHandler(this.FormatFont_Clicked));
mmiSerif = new MenuItem("&2. " + serifFontFamily.Name, new EventHandler(this.FormatFont_Clicked));
mmiMonoSpace = new MenuItem("&3. " + monoSpaceFontFamily.Name, new EventHandler(this.FormatFont_Clicked));
miFormat.MenuItems.Add( "Font &Face",
(new MenuItem[]{ mmiSansSerif, mmiSerif, mmiMonoSpace })
);
//Font Size sub-menu
MenuItem miSmall = new MenuItem("&Small", new EventHandler(this.FormatSize_Clicked));
MenuItem miMedium = new MenuItem("&Medium", new EventHandler(this.FormatSize_Clicked));
MenuItem miLarge = new MenuItem("&Large", new EventHandler(this.FormatSize_Clicked));
miFormat.MenuItems.Add( "Font &Size"
, new EventHandler(this.FormatSize_Clicked)
, (new MenuItem[]{ miSmall, miMedium, miLarge }));
VB
'Add Format Menu
Dim miFormat As MenuItem = mainMenu.MenuItems.Add("F&ormat")
'Font Face sub-menu
mmiSansSerif = New MenuItem("&1. " & sansSerifFontFamily.Name, New EventHandler(AddressOf Me.FormatFont_Clicked))
mmiSerif = New MenuItem("&2. " & serifFontFamily.Name, New EventHandler(AddressOf Me.FormatFont_Clicked))
mmiMonoSpace = New MenuItem("&3. " & monoSpaceFontFamily.Name, New EventHandler(AddressOf Me.FormatFont_Clicked))
miFormat.MenuItems.Add("Font &Face" _
, (New MenuItem() {mmiSansSerif, mmiSerif, mmiMonoSpace}))
'Font Size sub-menu
mmiSmall = New MenuItem("&Small", AddressOf Me.FormatSize_Clicked)
mmiMedium = New MenuItem("&Medium", AddressOf Me.FormatSize_Clicked)
mmiLarge = New MenuItem("&Large", AddressOf Me.FormatSize_Clicked)
miFormat.MenuItems.Add( "Font &Size" _
, New EventHandler(AddressOf Me.FormatSize_Clicked) _
, (New MenuItem(){ mmiSmall, mmiMedium, mmiLarge }) _
)
添加默认菜单项
下面的示例演示如何指定默认菜单项。
C#
//Add Format Menu
mmiSansSerif = new MenuItem("&1. " + sansSerifFontFamily.Name, new EventHandler(this.FormatFont_Clicked));
mmiSansSerif.DefaultItem = true ;
VB
'Font Face sub-menu
mmiSansSerif = New MenuItem("&1. " & sansSerifFontFamily.Name, New EventHandler(AddressOf Me.FormatFont_Clicked))
mmiSansSerif.DefaultItem = True
向菜单项添加选中标记
下面的示例演示如何在菜单项的旁边显示选中标记。该代码还演示如何跟踪选中了哪个项。
C#
//Add Format Menu
MenuItem miMedium = new MenuItem("&Medium", new EventHandler(this.FormatSize_Clicked));
miMedium.Checked = true;
....
private void FormatSize_Clicked(object sender, System.EventArgs e) {
MenuItem miClicked = (MenuItem)sender;
// Uncheck old selection
miMainFormatSizeChecked.Checked = false;
//Do Menu item action and make a new selection
....
miMainFormatSizeChecked = miSmall;
....
// Check the new selection
miMainFormatSizeChecked.Checked = true;
}
VB
' Add Format Menu
Dim miMedium As MenuItem = new MenuItem("&Medium", AddressOf Me.FormatSize_Clicked)
miMedium.Checked = True
....
Private Sub FormatSize_Clicked(sender As object, e As System.EventArgs)
Dim miClicked As MenuItem = CType(sender, MenuItem)
' Uncheck old selection
miMainFormatSizeChecked.Checked = False
' Do Menu item action and make a new selection
....
miMainFormatSizeChecked = miSmall
....
' Check the new selection
miMainFormatSizeChecked.Checked = True
End Sub
克隆菜单
在很多情况下,控件的上下文菜单是主菜单的子集。无法将同样的菜单项添加到多个菜单中,但是可以克隆菜单项或菜单项集合。下面的代码演示如何克隆前面创建的 Format 菜单,并将其添加到 Label 的上下文菜单中。
C#
//Add Format to label context menu
//Note have to add a clone because menus can't belong to 2 parents
label1ContextMenu.MenuItems.Add(miFormat.CloneMenu());
VB
'Add Format to label context menu
'Note have to add a clone because menus can't belong to 2 parents
label1ContextMenu.MenuItems.Add(miFormat.CloneMenu)
菜单合并
在 MDI 应用程序中,每个 MDI 子窗体的主菜单都合并到 MDI 父窗体的主菜单中。
菜单示例
Imports System Imports System.ComponentModel
Imports System.Drawing
Imports System.Drawing.Text
Imports System.Windows.Forms
Namespace Microsoft.Samples.WinForms.VB.Menus
Public Class Menus
Inherits System.Windows.Forms.Form
Private Class FontSizes
Public Shared Small As Single = 8F
Public Shared Medium As Single = 12F
Public Shared Large As Single = 24F
End Class
'字体外观和大小
Private fontFace As String = "Arial"
Private fontSize As Single = FontSizes.Medium
'用来跟踪被选中和未被选中的菜单项
Private mmiSansSerif As MenuItem
Private mmiSerif As MenuItem
Private mmiMonoSpace As MenuItem
Private mmiSmall As MenuItem
Private mmiMedium As MenuItem
Private mmiLarge As MenuItem
Private cmiSansSerif As MenuItem
Private cmiSerif As MenuItem
Private cmiMonoSpace As MenuItem
Private cmiSmall As MenuItem
Private cmiMedium As MenuItem
Private cmiLarge As MenuItem
Private miMainFormatFontChecked As MenuItem
Private miMainFormatSizeChecked As MenuItem
Private miContextFormatFontChecked As MenuItem
Private miContextFormatSizeChecked As MenuItem
Private currentFontFamily As FontFamily
Private monoSpaceFontFamily As FontFamily
Private sansSerifFontFamily As FontFamily
Private serifFontFamily As FontFamily
Public Sub New()
MyBase.New()
Menus = Me
'此调用是 Windows 窗体设计器所必需的。
InitializeComponent()
monoSpaceFontFamily = new FontFamily (GenericFontFamilies.Monospace)
sansSerifFontFamily = new FontFamily (GenericFontFamilies.SansSerif)
serifFontFamily = new FontFamily (GenericFontFamilies.Serif)
currentFontFamily = sansSerifFontFamily
label1.Font = New Font(fontFace, fontSize)
'添加“文件”菜单
Dim miFile As MenuItem = MainMenu.MenuItems.Add("文件(&F)")
miFile.MenuItems.Add(New MenuItem("打开(&O)...", New EventHandler(AddressOf Me.FileOpen_Clicked), Shortcut.CtrlO))
miFile.MenuItems.Add("-") ' 提供一个分隔符
miFile.MenuItems.Add(New MenuItem("退出(&X)", New EventHandler(AddressOf Me.FileExit_Clicked), Shortcut.CtrlX))
'添加“格式”菜单
Dim miFormat As MenuItem = MainMenu.MenuItems.Add("格式(&O)")
'“字体外观”子菜单
mmiSansSerif = New MenuItem("1.(&1)" & sansSerifFontFamily.Name, New EventHandler(AddressOf Me.FormatFont_Clicked))
mmiSansSerif.Checked = True
mmiSansSerif.DefaultItem = True
mmiSerif = New MenuItem("2. (&2)" & serifFontFamily.Name, New EventHandler(AddressOf Me.FormatFont_Clicked))
mmiMonoSpace = New MenuItem("3.(&3)" & monoSpaceFontFamily.Name, New EventHandler(AddressOf Me.FormatFont_Clicked))
miFormat.MenuItems.Add("字体外观(&F)" _
, (New MenuItem() {mmiSansSerif, mmiSerif, mmiMonoSpace}))
'“字体大小”子菜单
mmiSmall = New MenuItem("小(&S)", New EventHandler(AddressOf Me.FormatSize_Clicked))
mmiMedium = New MenuItem("中(&M)", New EventHandler(AddressOf Me.FormatSize_Clicked))
mmiMedium.Checked = True
mmiMedium.DefaultItem = True
mmiLarge = New MenuItem("大(&L)", New EventHandler(AddressOf Me.FormatSize_Clicked))
miFormat.MenuItems.Add("字体大小(&S)" _
, (New MenuItem() {mmiSmall, mmiMedium, mmiLarge}))
'向标签上下文菜单添加格式
'注意,因为菜单不能属于两个父级,所以必须添加一个复本
label1ContextMenu.MenuItems.Add(miFormat.CloneMenu)
' 设置上下文菜单项 - 使用它们选中和取消选中项
cmiSansSerif = label1ContextMenu.MenuItems(0).MenuItems(0).MenuItems(0)
cmiSerif = label1ContextMenu.MenuItems(0).MenuItems(0).MenuItems(1)
cmiMonoSpace = label1ContextMenu.MenuItems(0).MenuItems(0).MenuItems(2)
cmiSmall = label1ContextMenu.MenuItems(0).MenuItems(1).MenuItems(0)
cmiMedium = label1ContextMenu.MenuItems(0).MenuItems(1).MenuItems(1)
cmiLarge = label1ContextMenu.MenuItems(0).MenuItems(1).MenuItems(2)
'用这些来跟踪被选中的菜单项
'因为有菜单和上下文菜单,所以这会比较复杂
miMainFormatFontChecked = mmiSansSerif
miMainFormatSizeChecked = mmiMedium
miContextFormatFontChecked = cmiSansSerif
miContextFormatSizeChecked = cmiMedium
End Sub
'“文件”->“退出”菜单项处理程序
Private Sub FileExit_Clicked(ByVal sender As Object, ByVal e As System.EventArgs)
Me.Close()
End Sub
'“文件”->“打开”菜单项处理程序
Private Sub FileOpen_Clicked(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("为什么这会打开文件?")
End Sub
'“格式”->“字体”菜单项处理程序
Private Sub FormatFont_Clicked(ByVal sender As Object, ByVal e As System.EventArgs)
Dim miClicked As MenuItem = CType(sender, MenuItem)
miMainFormatFontChecked.Checked = False
miContextFormatFontChecked.Checked = False
If miClicked Is mmiSansSerif Or miClicked Is cmiSansSerif Then
miMainFormatFontChecked = mmiSansSerif
miContextFormatFontChecked = cmiSansSerif
currentFontFamily = sansSerifFontFamily
ElseIf miClicked Is mmiSerif Or miClicked Is cmiSerif Then
miMainFormatFontChecked = mmiSerif
miContextFormatFontChecked = cmiSerif
currentFontFamily = serifFontFamily
Else
miMainFormatFontChecked = mmiMonoSpace
miContextFormatFontChecked = cmiMonoSpace
currentFontFamily = monoSpaceFontFamily
End If
miMainFormatFontChecked.Checked = True
miContextFormatFontChecked.Checked = True
label1.Font = New Font(currentFontFamily, fontSize)
End Sub
'“格式”->“大小”菜单项处理程序
Private Sub FormatSize_Clicked(ByVal sender As Object, ByVal e As System.EventArgs)
Dim miClicked As MenuItem = CType(sender, MenuItem)
miMainFormatSizeChecked.Checked = False
miContextFormatSizeChecked.Checked = False
Dim fontSizeString As String = miClicked.Text
If (fontSizeString = "小(&S)") Then
miMainFormatSizeChecked = mmiSmall
miContextFormatSizeChecked = cmiSmall
fontSize = FontSizes.Small
ElseIf (fontSizeString = "大(&L)") Then
miMainFormatSizeChecked = mmiLarge
miContextFormatSizeChecked = cmiLarge
fontSize = FontSizes.Large
Else
miMainFormatSizeChecked = mmiMedium
miContextFormatSizeChecked = cmiMedium
fontSize = FontSizes.Medium
End If
miMainFormatSizeChecked.Checked = True
miContextFormatSizeChecked.Checked = True
label1.Font = New Font(currentFontFamily, fontSize)
End Sub
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
#Region " Windows 窗体设计器生成的代码 "
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.Container
Private WithEvents label1 As System.Windows.Forms.Label
Private WithEvents mainMenu As System.Windows.Forms.MainMenu
Private label1ContextMenu As System.Windows.Forms.ContextMenu
Private WithEvents Menus As System.Windows.Forms.Form
'注意:下面的过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改它。
'不要使用代码编辑器修改它。
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.mainMenu = New System.Windows.Forms.MainMenu()
Me.label1 = New System.Windows.Forms.Label()
Me.label1ContextMenu = New System.Windows.Forms.ContextMenu()
Me.Text = "Menus 'R Us"
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.Menu = mainMenu
Me.ClientSize = New System.Drawing.Size(392, 117)
label1.BackColor = System.Drawing.Color.LightSteelBlue
label1.Location = New System.Drawing.Point(16, 24)
label1.TabIndex = 0
label1.Anchor = CType(13, System.Windows.Forms.AnchorStyles)
label1.Size = New System.Drawing.Size(360, 50)
label1.Text = "Right Click on me - I have a context menu!"
label1.ContextMenu = label1ContextMenu
Me.Controls.Add(label1)
End Sub
#End Region
'运行应用程序
'应用程序的主入口点
<STAThread()> Shared Sub Main()
System.Windows.Forms.Application.Run(New Menus())
End Sub
End Class
End Namespace
C#
namespace Microsoft.Samples.WinForms.Cs.Menus {
using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Text;
using System.Windows.Forms;
public class Menus : System.Windows.Forms.Form {
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components;
protected internal System.Windows.Forms.Label label1;
protected internal System.Windows.Forms.MainMenu mainMenu;
protected internal System.Windows.Forms.ContextMenu label1ContextMenu;
// 注释此结构以在 WinForms 设计器中查看 menus.cs。
// 记住不要在设计器中编辑菜单。这样会与
// 手写菜单代码冲突。记住在完成此操作
// 后取消注释此结构。
private struct FontSizes {
public static float Small = 8f;
public static float Medium = 12f;
public static float Large = 24f;
}
//字体外观和大小
private float fontSize = FontSizes.Medium;
//用来跟踪被选中和未被选中的菜单项
private MenuItem mmiSansSerif;
private MenuItem mmiSerif;
private MenuItem mmiMonoSpace;
private MenuItem mmiSmall;
private MenuItem mmiMedium;
private MenuItem mmiLarge;
private MenuItem cmiSansSerif;
private MenuItem cmiSerif;
private MenuItem cmiMonoSpace;
private MenuItem cmiSmall;
private MenuItem cmiMedium;
private MenuItem cmiLarge;
private MenuItem miMainFormatFontChecked ;
private MenuItem miMainFormatSizeChecked ;
private MenuItem miContextFormatFontChecked ;
private MenuItem miContextFormatSizeChecked ;
private FontFamily currentFontFamily ;
private FontFamily monoSpaceFontFamily;
private FontFamily sansSerifFontFamily;
private FontFamily serifFontFamily;
public Menus() {
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
// 初始化字体 - 使用一般字体以避免在操作
// 系统的不同版本之间出现问题
monoSpaceFontFamily = new FontFamily (GenericFontFamilies.Monospace);
sansSerifFontFamily = new FontFamily (GenericFontFamilies.SansSerif);
serifFontFamily = new FontFamily (GenericFontFamilies.Serif);
currentFontFamily = sansSerifFontFamily;
//添加“文件”菜单
MenuItem miFile = mainMenu.MenuItems.Add("文件(&F)");
miFile.MenuItems.Add(new MenuItem("打开(&O)...", new EventHandler(this.FileOpen_Clicked), Shortcut.CtrlO));
miFile.MenuItems.Add("-"); // 提供一个分隔符
miFile.MenuItems.Add(new MenuItem("退出(&X)", new EventHandler(this.FileExit_Clicked), Shortcut.CtrlX));
//添加“格式”菜单
MenuItem miFormat = mainMenu.MenuItems.Add("格式(&O)");
//“字体外观”子菜单
mmiSansSerif = new MenuItem("1.(&1)" + sansSerifFontFamily.Name, new EventHandler(this.FormatFont_Clicked));
mmiSansSerif.Checked = true ;
mmiSansSerif.DefaultItem = true ;
mmiSerif = new MenuItem("2. (&2)" + serifFontFamily.Name, new EventHandler(this.FormatFont_Clicked));
mmiMonoSpace = new MenuItem("3.(&3)" + monoSpaceFontFamily.Name, new EventHandler(this.FormatFont_Clicked));
miFormat.MenuItems.Add( "字体外观(&F)",
(new MenuItem[]{ mmiSansSerif, mmiSerif, mmiMonoSpace })
);
//“字体大小”子菜单
mmiSmall = new MenuItem("小(&S)", new EventHandler(this.FormatSize_Clicked));
mmiMedium = new MenuItem("中(&M)", new EventHandler(this.FormatSize_Clicked));
mmiMedium.Checked = true ;
mmiMedium.DefaultItem = true ;
mmiLarge = new MenuItem("大(&L)", new EventHandler(this.FormatSize_Clicked));
miFormat.MenuItems.Add( "字体大小(&S)",
(new MenuItem[]{ mmiSmall, mmiMedium, mmiLarge })
);
//向标签上下文菜单添加格式
//注意,因为菜单不能属于两个父级,所以必须添加一个复本
label1ContextMenu.MenuItems.Add(miFormat.CloneMenu());
// 设置上下文菜单项 - 使用它们选中和取消选中项
cmiSansSerif = label1ContextMenu.MenuItems[0].MenuItems[0].MenuItems[0];
cmiSerif = label1ContextMenu.MenuItems[0].MenuItems[0].MenuItems[1];
cmiMonoSpace = label1ContextMenu.MenuItems[0].MenuItems[0].MenuItems[2];
cmiSmall = label1ContextMenu.MenuItems[0].MenuItems[1].MenuItems[0];
cmiMedium = label1ContextMenu.MenuItems[0].MenuItems[1].MenuItems[1];
cmiLarge = label1ContextMenu.MenuItems[0].MenuItems[1].MenuItems[2];
//用这些来跟踪被选中的菜单项
//因为有菜单和上下文菜单,所以这会比较复杂
miMainFormatFontChecked = mmiSansSerif;
miMainFormatSizeChecked = mmiMedium;
miContextFormatFontChecked = cmiSansSerif;
miContextFormatSizeChecked = cmiMedium;
}
//“文件”->“退出”菜单项处理程序
private void FileExit_Clicked(object sender, System.EventArgs e) {
this.Close();
}
//“文件”->“打开”菜单项处理程序
private void FileOpen_Clicked(object sender, System.EventArgs e) {
MessageBox.Show("为什么这会打开文件?");
}
//“格式”->“字体”菜单项处理程序
private void FormatFont_Clicked(object sender, System.EventArgs e) {
MenuItem miClicked = (MenuItem)sender;
miMainFormatFontChecked.Checked = false;
miContextFormatFontChecked.Checked = false;
if ( miClicked == mmiSansSerif || miClicked == cmiSansSerif ) {
miMainFormatFontChecked = mmiSansSerif;
miContextFormatFontChecked = cmiSansSerif;
currentFontFamily = sansSerifFontFamily;
} else if (miClicked == mmiSerif || miClicked == cmiSerif) {
miMainFormatFontChecked = mmiSerif;
miContextFormatFontChecked = cmiSerif;
currentFontFamily = serifFontFamily;
} else {
miMainFormatFontChecked = mmiMonoSpace;
miContextFormatFontChecked = cmiMonoSpace;
currentFontFamily = monoSpaceFontFamily;
}
miMainFormatFontChecked.Checked = true;
miContextFormatFontChecked.Checked = true;
label1.Font = new Font(currentFontFamily, fontSize);
}
//“格式”->“大小”菜单项处理程序
private void FormatSize_Clicked(object sender, System.EventArgs e) {
MenuItem miClicked = (MenuItem)sender;
miMainFormatSizeChecked.Checked = false;
miContextFormatSizeChecked.Checked = false;
string fontSizeString = ((MenuItem)sender).Text;
if (fontSizeString == "小(&S)") {
miMainFormatSizeChecked = mmiSmall;
miContextFormatSizeChecked = cmiSmall;
fontSize = FontSizes.Small ;
} else if (fontSizeString == "大(&L)") {
miMainFormatSizeChecked = mmiLarge;
miContextFormatSizeChecked = cmiLarge;
fontSize = FontSizes.Large ;
} else {
miMainFormatSizeChecked = mmiMedium;
miContextFormatSizeChecked = cmiMedium;
fontSize = FontSizes.Medium ;
}
miMainFormatSizeChecked.Checked = true;
miContextFormatSizeChecked.Checked = true;
label1.Font = new Font(currentFontFamily, fontSize);
}
/// <summary>
/// 清理正在使用的所有资源。
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// 设计器支持所必需的方法,不要使用
/// 代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container ();
this.mainMenu = new System.Windows.Forms.MainMenu ();
this.label1 = new System.Windows.Forms.Label ();
this.label1ContextMenu = new System.Windows.Forms.ContextMenu ();
this.Text = "Menus 'R Us";
this.AutoScaleBaseSize = new System.Drawing.Size (5, 13);
this.Menu = this.mainMenu;
this.ClientSize = new System.Drawing.Size (392, 117);
label1.BackColor = System.Drawing.Color.LightSteelBlue;
label1.Location = new System.Drawing.Point (16, 24);
label1.TabIndex = 0;
label1.Anchor = (System.Windows.Forms.AnchorStyles) 13;
label1.Size = new System.Drawing.Size (360, 50);
label1.Text = "Right Click on me - I have a context menu!";
label1.ContextMenu = this.label1ContextMenu;
this.Controls.Add (this.label1);
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
public static void Main(string[] args) {
Application.Run(new Menus());
}
}
}