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

本文主要是介绍【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1.MenuStrip
    • 2.ContextMenuStrip
    • 3.ToolStrip
    • 4.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){}}
}

请添加图片描述

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

请添加图片描述

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

这篇关于【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/334161

相关文章

SpringBoot整合easy-es的详细过程

《SpringBoot整合easy-es的详细过程》本文介绍了EasyES,一个基于Elasticsearch的ORM框架,旨在简化开发流程并提高效率,EasyES支持SpringBoot框架,并提供... 目录一、easy-es简介二、实现基于Spring Boot框架的应用程序代码1.添加相关依赖2.添

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL