隐藏

WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件

发布:2023/11/5 13:22:10作者:管理员 来源:本站 浏览次数:863

文章目录


       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);

       }

   }

}