文章目录
- 1.MenuStrip
- 2.ContextMenuStrip
- 3.ToolStrip
- 4.StatusStrip
1.MenuStrip
MenuStrip
作为一个容器可以包含多个菜单项。MenuStrip
的重要属性包括:
Name
:菜单的名字Dock
:菜单的停靠位置Items
:菜单项的集合
ToolStripMenuItem
ToolStripMenuItem
是 MenuStrip
中的菜单项,可以有以下属性和功能:
ShortcutKeys
:为菜单项设置快捷键,例如Alt+F
,Ctrl+N
等DropDownItems
:菜单项的子菜单集合- 图标:菜单项可以通过关联
ImageList
控件来显示图标
菜单项的响应
菜单项可以注册 Click
事件来响应用户的点击操作。有两种方式来添加菜单项的响应:
- 手动添加:在设计界面上手动添加菜单项,并为每个菜单项注册
Click
事件 - 代码添加:在
Load
事件中通过代码添加菜单项,并为其注册Click
事件
代码示例
using System;
using System.Windows.Forms;namespace WFFormUse
{public partial class FrmMenuStrip : Form{public FrmMenuStrip(){InitializeComponent();}private void FrmMenuStrip_Load(object sender, EventArgs e){//代码添加菜单项ToolStripMenuItem miStudent = new ToolStripMenuItem();miStudent.Name = "miStudent";miStudent.Text = "学生管理(&M)";//它下面还有子菜单 ToolStripMenuItem miAddStudent = new ToolStripMenuItem();miAddStudent.Name = "miAddStudent";miAddStudent.Text = "新增学生";miAddStudent.Click += MiAddStudent_Click;miStudent.DropDownItems.Add(miAddStudent);//添加子菜单StudentMenus.Items.Add(miStudent); //添加主菜单}private void MiAddStudent_Click(object sender, EventArgs e){MForms.FrmAddStudent fAddStudent = new MForms.FrmAddStudent();fAddStudent.MdiParent = this;//设置当前窗体的父窗体fAddStudent.Show();//Mdi容器不支持ShowDialog()}//退出系统private void miExit_Click(object sender, EventArgs e){Application.Exit();}//新增学生private void miAddStudent_Click(object sender, EventArgs e){MForms.FrmAddStudent fAddStudent = new MForms.FrmAddStudent();fAddStudent.MdiParent = this;//设置当前窗体的父窗体fAddStudent.Show();//Mdi容器不支持ShowDialog()}//新增班级private void miAddClass_Click(object sender, EventArgs e){MForms.FrmAddClass fAddClass = new MForms.FrmAddClass();fAddClass.MdiParent = this;fAddClass.Show();}private void StudentMenus_ItemClicked(object sender, ToolStripItemClickedEventArgs e){}}
}
2.ContextMenuStrip
ContextMenuStrip
用于创建和显示上下文菜单,也就是通常所说的右键菜单。它通常与窗体或其他控件相关联,当用户在相关联的控件上右击时,上下文菜单就会显示出来。
属性
ContextMenuStrip
的一些重要属性包括:
Items
:菜单项的集合,用于存放菜单项。Name
:菜单的名字。
除了这些,ContextMenuStrip
还有其他一些属性,例如 BackColor
、ForeColor
、Font
等,用于设置菜单的背景色、前景色、字体等。
方法
Show
:显示上下文菜单。该方法有多个重载版本,可以指定显示位置等参数。Hide
:隐藏上下文菜单。Dispose
:释放ContextMenuStrip
控件所使用的资源。
官方文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.forms.contextmenustrip?view=windowsdesktop-7.0&viewFallbackFrom=net-7.0
示例:
namespace WinFormsTest
{public partial class frmContextMenuStrip : Form{public frmContextMenuStrip(){InitializeComponent();}private void ContextMenuStrip_Load(object sender, EventArgs e){}private void loginToolStripMenuItem_Click(object sender, EventArgs e){FrmUser fAddStudent = new FrmUser();fAddStudent.MdiParent = this;//设置当前窗体的父窗体fAddStudent.Show();//Mdi容器不支持ShowDialog()}private void redToolStripMenuItem_Click(object sender, EventArgs e){button2.BackColor = Color.Red;}private void greenToolStripMenuItem_Click(object sender, EventArgs e){button2.BackColor = Color.Green;}private void 改字体颜色ToolStripMenuItem_Click(object sender, EventArgs e){button1.BackColor = Color.Green;}}
}
3.ToolStrip
ToolStrip
通常用于创建工具栏,以便用户能够快速访问常用的命令或功能。ToolStrip
可以包含多个不同类型的项,例如按钮、标签、下拉按钮等。
属性
ToolStrip
的重要属性包括:
Items
:项的集合,用于存放ToolStrip
中的各种项。DisplayStyle
:用于设置项中图片和文本的显示方式。
ToolStrip 中的项
ToolStrip
中可以包含以下类型的项:
ToolStripButton
:按钮,可以注册Click
事件来响应用户的点击操作。ToolStripLabel
:标签,也可以注册Click
事件。ToolStripSplitButton
:拆分按钮,包含一个按钮部分和一个下拉部分,可以注册ButtonClick
事件来响应按钮部分的点击操作,也可以注册Click
事件来响应下拉项的点击操作。ToolStripDropDownButton
:下拉按钮,可以包含多个下拉项,可以注册DropDownItemClicked
事件来响应下拉项的点击操作。ToolStripComboBox
:下拉组合框,可以注册SelectedIndexChanged
事件来响应选中项的改变。ToolStripTextBox
:文本输入框,可以注册TextChanged
事件来响应文本的改变。ToolStripProgressBar
:进度条,通常不需要注册事件。
示例
4.StatusStrip
StatusStrip
控件是通常用于在窗口的底部显示状态信息、进度条等。
常用属性:
- Dock: 控制
StatusStrip
的停靠位置,默认值为Bottom,即停靠在窗口的底部。 - Items: 表示
StatusStrip
中包含的所有子控件的集合。
用途:
- 显示账号信息。
- 显示角色信息。
- 显示操作位置信息。
- 显示进度条。
- 显示版本信息。
示例:
namespace WinFormsTest
{public partial class frmStatusStrip : Form{public frmStatusStrip(){InitializeComponent();}private void frmStatusStrip_Load(object sender, EventArgs e){// 创建StatusStrip控件StatusStrip statusStrip = new StatusStrip();statusStrip.Dock = DockStyle.Bottom;// 添加账号信息ToolStripStatusLabel accountLabel = new ToolStripStatusLabel();accountLabel.Text = "账号: user1";statusStrip.Items.Add(accountLabel);// 添加角色信息ToolStripStatusLabel roleLabel = new ToolStripStatusLabel();roleLabel.Text = "角色: 管理员";statusStrip.Items.Add(roleLabel);// 添加操作位置信息ToolStripStatusLabel locationLabel = new ToolStripStatusLabel();locationLabel.Text = "操作位置: 主界面";statusStrip.Items.Add(locationLabel);// 添加进度条ToolStripProgressBar progressBar = new ToolStripProgressBar();progressBar.Value = 50;statusStrip.Items.Add(progressBar);// 添加版本信息ToolStripStatusLabel versionLabel = new ToolStripStatusLabel();versionLabel.Text = "版本: v1.0";statusStrip.Items.Add(versionLabel);// 将StatusStrip控件添加到窗口的Controls集合中this.Controls.Add(statusStrip);}}
}
精彩推荐:
【C#进阶一】C#中的数组(Array)、集合(ArrayList,Queue,Stack, HashList)、List<T>、字典(Dictionary<K,T>)和双向链表LinkedList
【C#进阶八】C#中的序列化与反序列化下(二进制序列化、XML序列化及JSON序列化)
【C#进阶】C#语法中一些常用知识点总结
【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox
【WinForm详细教程三】WinForm中的NumericUpDown、PictureBox、RichTextBox及三种Timer控件
【WinForm详细教程四】WinForm中的ProgressBar 、ImageList和ListView控件
【C#进阶】C#中的委托、事件、回调函数、匿名函数和lambda表达式
希望有所帮助,同时欢迎关注我,后面将更新更多相关内容!