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

这篇具有很好参考价值的文章主要介绍了【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)
        {

        }
    }
}

c#winform中menustrip控件,Winform详细教程,winform,WinForm,C#

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

c#winform中menustrip控件,Winform详细教程,winform,WinForm,C#

3.ToolStrip

ToolStrip 通常用于创建工具栏,以便用户能够快速访问常用的命令或功能。ToolStrip 可以包含多个不同类型的项,例如按钮、标签、下拉按钮等。

属性

ToolStrip 的重要属性包括:

  • Items:项的集合,用于存放 ToolStrip 中的各种项。
  • DisplayStyle:用于设置项中图片和文本的显示方式。

ToolStrip 中的项

ToolStrip 中可以包含以下类型的项:

  • ToolStripButton:按钮,可以注册 Click 事件来响应用户的点击操作。
  • ToolStripLabel:标签,也可以注册 Click 事件。
  • ToolStripSplitButton:拆分按钮,包含一个按钮部分和一个下拉部分,可以注册 ButtonClick 事件来响应按钮部分的点击操作,也可以注册 Click 事件来响应下拉项的点击操作。
  • ToolStripDropDownButton:下拉按钮,可以包含多个下拉项,可以注册 DropDownItemClicked 事件来响应下拉项的点击操作。
  • ToolStripComboBox:下拉组合框,可以注册 SelectedIndexChanged 事件来响应选中项的改变。
  • ToolStripTextBox:文本输入框,可以注册 TextChanged 事件来响应文本的改变。
  • ToolStripProgressBar:进度条,通常不需要注册事件。

示例

c#winform中menustrip控件,Winform详细教程,winform,WinForm,C#

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#winform中menustrip控件,Winform详细教程,winform,WinForm,C#

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

c#winform中menustrip控件,Winform详细教程,winform,WinForm,C#

精彩推荐:
【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表达式
希望有所帮助,同时欢迎关注我,后面将更新更多相关内容!文章来源地址https://www.toymoban.com/news/detail-766499.html

到了这里,关于【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的用法

    摘要:Winform开发进阶之ContextMenuStrip,以自身开发经验讲解ContextMenuStrip的具体用法。 编程语言:C# 编程环境:Visual Studio 2019         有没有人跟小编一样,想给控件加入鼠标右击菜单,但点到属性框发现......         Oh我的天,这居然是无,那到底要怎样添加鼠标右击

    2024年02月09日
    浏览(43)
  • 「C#」异步编程玩法笔记-WinForm中的常见问题

    目录 1、异步更新界面 1.1、问题 1.2、解决问题 1.3、AsyncOperationManager和AsyncOperation 1.4、Invoke、BeginInvoke、EndInvoke及InvokeRequired Invoke InvokeRequired BeginInvoke EndInvoke 2、死锁 2.1、问题 2.2、 解决方法 2.2.1、不要await 2.2.2、用await代替Wait()/Result 2.2.3、使用新的异步方法中转 2.2.4、Config

    2024年02月01日
    浏览(40)
  • C#Winform中的DataGridView的自动调整列宽设置

    C#Winform中的DataGridView的自动调整列宽设置属性为AutoSizeColumnMode 的枚举值如下: 1、AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格。   2、AllCellsExceptHeader 调整列宽,以适合该列中的所有单元格的内容,不包括标题单元格。   3、ColumnHeader 调整列宽,以

    2024年02月13日
    浏览(33)
  • chatgpt赋能python:Title:Python编程中的空格怎么用?详细教程!

    Title: Python编程中的空格怎么用?详细教程! Introduction: Python编程的空格使用一直是令人困惑的话题之一,但它却是Python语言中非常重要的一部分。空格在Python程序中用来表示代码块的开始和结束,因此不同的空格使用方式可能会导致程序运行结果的不同。所以,对于Python程序

    2024年02月11日
    浏览(44)
  • 在Winform系统开发中,对表格列表中的内容进行分组展示

    在我们开发Winform界面的时候,有时候会遇到需要对一些字段进行一些汇总的管理,如果在列表中能够对表格列表中的内容进行分组展示,将比较符合我们的预期,本篇随笔介绍在Winform开发中如何利用DevExpress的GridView实现该功能。 我们来以ERP系统中的一个原料表格来介绍我们

    2024年01月18日
    浏览(50)
  • Log4net在.Net Winform项目中的使用

    Log4net是一个流行的日志记录工具,可以帮助开发人员在应用程序中实现高效的日志记录。本文将提供一个详细的分步骤示例,来帮助您在.Net Winform项目中使用Log4net。 打开Visual Studio工具。 选择您的.Net Winform项目,并右击选择“管理NuGet程序包”。 在NuGet程序包管理器中搜索并

    2024年02月12日
    浏览(43)
  • 界面控件DevExpress WinForm中文教程 - 如何应用Windows 11 UI?

    DevExpress WinForm拥有180+组件和UI库,能为 Windows Forms 平台创建具有影响力的业务解决方案。 DevExpress WinForm 能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任! DevExpress WinForm组件允许开发人员轻松地引入受

    2024年02月08日
    浏览(54)
  • net中winform教程 浏览器控件,还是微软的WebView2最好用

    如果想在Winform项目中使用浏览器控件,可能想到的第一个控件就是微软自带的WebBrowser,可这个不争气的家伙,从出现到现在,没有一丁点的升级,即使身为Net程序员,也不得不对它竖起了中指。不过,好在微软迷途知返,提供了升级控件,才算摆平。不然让Google的Cef控件抢

    2024年02月11日
    浏览(52)
  • 【python plotly库介绍】从视觉到洞见:桑基图在业务分析中的应用【保姆级教程过于详细珍藏版】

     👤作者介绍:10年大厂数据经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 python数据分析可视化:企业实战案例 备注说明:方便大家阅读

    2024年04月17日
    浏览(29)
  • 【入门级图文教程】在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用

    目录 本教程使用到的相关软件或产品: 教程正文:         创建用户控件库:         添加自定义控件项:         在其他解决方案中引用: Windows 10 专业版        10.0.19044 Microsoft Visual Studio Community 2022 (64 位)  版本17.3.2 「.NET 桌面开发」工作负荷(在开始菜单

    2024年02月10日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包