首页 > 其他分享 >【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件

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

时间:2023-12-12 17:48:09浏览次数:23  
标签:控件 Items 添加 ToolStrip new 菜单项 Click WinForm

原文链接:https://blog.csdn.net/QH2107/article/details/134192251

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

}
}
}


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

 

标签:控件,Items,添加,ToolStrip,new,菜单项,Click,WinForm
From: https://www.cnblogs.com/Dongmy/p/17884831.html

相关文章

  • Sb9-关于使用别人封装的C#控件出现异常如何处理
    偶然间我在网上看到一个封装了DataGridView控件的第三方控件,里面有很多是我需要的效果。所以就直接拿来使用了,但是今天突然发现,这个控件里面的“TreeGridView”表格控件在没有绑定数据的时候,如果点击回车键的话会抛出一个空指针的异常。在AdvancedDataGridView.TreeGridView.O......
  • 如何将 sap.ui.Table 控件的背景设置成透明
    笔者曾经写过一篇文章,介绍了如何在SAPUI5应用里设置背景图片:下图1是背景图片,图2是把这个背景图片加到SAPUI5应用之后的效果。后来有朋友追问:如果我的SAPUI5应用里使用的表格控件,没有用响应式表格sap.m.Table,而是sap.ui.table.Table,那又该如何实现?其实思路和我本文的思......
  • 界面控件DevExpress WPF导航组件,助力升级应用程序用户体验!(下)
    DevExpressWPF的SideNavigation(侧边导航)、TreeView、导航面板组件能帮助开发者在WPF项目中添加Windows样式的资源管理器栏或OutlookNavBar(导航栏),DevExpressWPFNavBar和Accordion控件包含了许多开发人员友好的功能,专门设计用于帮助用户构建极佳的应用功能。在上文中(点击这里回......
  • 将绑定到itemsource的控件里面的元素绑定到itemsource数据源之外的viewmodel中的数据
    1<ComboBox.ItemTemplate>2<DataTemplate>3<StackPanelOrientation="Horizontal">4<TextBlockWidth="100"Text="{BindingKey}"/>5<ButtonContent="X"......
  • 无涯教程-MFC - 窗口控件
    Windows控件是用户可以与之交互以输入或操作数据的对象,它们通常出现在对话框或工具栏上。Sr.No.Controls&描述1StaticControl静态Static控件向用户显示信息,它可以用于显示颜色,几何形状或图片,如图标,位图或动画。2AnimationControl动画控件是一个以AVI格式显示音频剪......
  • 无涯教程-MFC - 控件管理
    在MFC应用程序中,以可视方式将控件添加到应用程序后,如果要在代码中引用它,则可以基于该控件或与该控件关联来声明变量。MFC库允许您为应用程序中使用的某些控件声明值或控件变量的两种类型的变量。一个变量用于存储在控件中的信息,也称为ControlVariable/Instance.另一个变量称......
  • MFC CListVtrl 控件简单测试
    ▲样式Demo关联控件变量m_CList,在属性中将视图(View)设置成Report(报表)模式。在BOOLCMFCApplication4LlisBoxDlg::OnInitDialog()初始化函数中添加测试代码://TODO:在此添加额外的初始化代码//m_CList.SetView(1);//视图View要改成Report报表模式//设置风格样......
  • 动手实现基于 JSON 和 OData 两种数据模型的 Web 应用表格控件行项目的添加和删除
    文章标题描述的需求是笔者在工作和网络上经常收到的前端开发领域的咨询话题之一。Web应用的表格控件,在切换到编辑模式下之后,给用户提供了行项目的添加和删除功能。基于MVC和MVVM框架的前端控件,都离不开Model即数据模型层。笔者工作中使用最多的模型层实现技术,即JSON模型......
  • 在winform中使用blazor hybrid构建页面
    1、BlazorHybrid简介BlazorHybrid使开发人员能够将桌面和移动本机客户端框架与.NET和Blazor结合使用。在BlazorHybrid应用中,Razor组件在设备上是本机运行的。这些组件通过本地互操作通道呈现到嵌入式Web视图控件。组件不在浏览器中运行,并且不涉及WebAssembly。R......
  • 浅谈WPF之控件拖拽与拖动
    使用过office的visio软件画图的小伙伴都知道,画图软件分为两部分,左侧图形库,存放各种图标,右侧是一个画布,将左侧图形库的图标控件拖拽到右侧画布,就会生成一个新的控件,并且可以自由拖动。那如何在WPF程序中,实现类似的功能呢?今天就以一个简单的小例子,简述如何在WPF中实现控件的拖拽和拖......