• 【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件


    1.MenuStrip

    MenuStrip作为一个容器可以包含多个菜单项MenuStrip 的重要属性包括:

    • Name:菜单的名字
    • Dock:菜单的停靠位置
    • Items:菜单项的集合

    ToolStripMenuItem

    ToolStripMenuItemMenuStrip 中的菜单项,可以有以下属性和功能:

    • ShortcutKeys:为菜单项设置快捷键,例如 Alt+FCtrl+N
    • DropDownItems:菜单项的子菜单集合
    • 图标:菜单项可以通过关联 ImageList 控件来显示图标

    菜单项的响应

    菜单项可以注册 Click 事件来响应用户的点击操作。有两种方式来添加菜单项的响应:

    1. 手动添加:在设计界面上手动添加菜单项,并为每个菜单项注册 Click 事件
    2. 代码添加:在 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)
            {
    
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64

    请添加图片描述

    2.ContextMenuStrip

    ContextMenuStrip用于创建和显示上下文菜单,也就是通常所说的右键菜单。它通常与窗体或其他控件相关联,当用户在相关联的控件上右击时,上下文菜单就会显示出来。

    属性

    ContextMenuStrip 的一些重要属性包括:

    • Items:菜单项的集合,用于存放菜单项。
    • Name:菜单的名字。

    除了这些,ContextMenuStrip 还有其他一些属性,例如 BackColorForeColorFont 等,用于设置菜单的背景色、前景色、字体等。

    方法

    • 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;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    请添加图片描述

    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);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    请添加图片描述

    【WinForm详细教程】源代码获取方式

    在这里插入图片描述

    精彩推荐:
    【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表达式
    希望有所帮助,同时欢迎关注我,后面将更新更多相关内容!

  • 相关阅读:
    Ubuntu18.04系统安装并配置redis
    conda清华源安装cuda12.1的pytorch
    企业架构LNMP学习笔记8
    Java Package用法:组织与管理类的利器
    C语言程序设计教程(第三版)李凤霞 第九章课后习题答案
    【Redis在Windows中与Linux中的下载安装,启动服务和设置密码远程连接】
    http模块中----------req请求对象-req.url req.method 与客户端请求相关
    数据库上机实验5 数据库安全性
    艾美捷ProSci丨ProSci 凋亡抑制蛋白检测套装解决方案
    【WSN定位】基于chan算法、fang算法、taylor算法实现目标定位附Matlab代码
  • 原文地址:https://blog.csdn.net/QH2107/article/details/134192251