百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

68.C# MenuStrip控件

wptr33 2025-04-29 05:35 20 浏览

摘要


MenuStrip 控件是在 .NET Framework 版本 2.0 中引入的。 可以通过 MenuStrip 控件,轻松创建像 Microsoft Office 中的菜单。

MenuStrip 控件支持多文档界面 (MDI) 和菜单合并、工具提示和溢出。 开发人员可以通过添加访问键、快捷键、复选标记、图像和菜单分隔符来增强菜单的可用性和可读性。

正文


属性

GripDisplayStyle

获取 ToolStrip 移动手柄的方向。

GripMargin

获取或设置 ToolStrip 移动手柄周围的空间。

GripRectangle

获取 ToolStrip 移动手柄的边界

GripStyle

获取或设置用作重新定位控件的手柄的可见性。

Items

获取属于 ToolStrip 的所有项

Orientation

获取 ToolStripPanel 的方向

OverflowButton

获取 ToolStripItem,它是启用了溢出的 ToolStrip 的“溢出”按钮

ShowItemToolTips

获取或设置一个值,该值指示是否显示 MenuStrip 的工具提示。

手动布局MenuStrip菜单控件

手动添加Item项

设置快捷键

给菜单项设置图标

按Ctrl+1显示

private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
{
    MessageBox.Show("关闭");
}

ToolStripMenuItem

Checked

获取或设置一个值,该值指示是否选中 ToolStripMenuItem。

CheckOnClick

获取或设置一个值,该值指示 ToolStripMenuItem 是否应在被单击时自动显示为选中或未选中。

CheckState

获取或设置一个值,该值指示 ToolStripMenuItem 处于选中、未选中还是不确定状态。

Image

获取或设置显示在 ToolStripItem 上的图像

ImageAlign

获取或设置 ToolStripItem 上的图像对齐方式

ImageIndex

获取或设置在该项上显示的图像的索引值

ImageKey

获取或设置显示在 ImageList 上的 ToolStripItem 中图像的键访问器。

ImageScaling

获取或设置一个值,该值指示是否根据容器自动调整 ToolStripItem 上图像的大小。

ImageTransparentColor

获取或设置 ToolStripItem 图像中被视为透明的颜色。

IsMdiWindowListEntry

获取一个值,该值指示 ToolStripMenuItem 是否显示在多文档界面 (MDI) 窗口列表中。

Mdi窗口中应用

namespace _66
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.IsMdiContainer = true;

            //创建四个工具栏容器
            ToolStripPanel tspTop = new ToolStripPanel();
            ToolStripPanel tspBottom = new ToolStripPanel();
            ToolStripPanel tspLeft = new ToolStripPanel();
            ToolStripPanel tspRight = new ToolStripPanel();

            //工具栏容器布局
            tspTop.Dock = DockStyle.Top;
            tspBottom.Dock = DockStyle.Bottom;
            tspLeft.Dock = DockStyle.Left;
            tspRight.Dock = DockStyle.Right;

            //添加上工具栏
            ToolStrip tsTop = new ToolStrip();
            tsTop.Items.Add("Top");
            tspTop.Join(tsTop);

            //添加下工具栏
            ToolStrip tsBottom = new ToolStrip();
            tsBottom.Items.Add("Bottom");
            tspBottom.Join(tsBottom);

            //添加右工具栏
            ToolStrip tsRight = new ToolStrip();
            tsRight.Items.Add("Right");
            tspRight.Join(tsRight);

            //添加左工具栏
            ToolStrip tsLeft = new ToolStrip();
            tsLeft.Items.Add("Left");
            tspLeft.Join(tsLeft);

            //创建主菜单
            MenuStrip ms = new MenuStrip();
            ToolStripMenuItem windowMenu = new ToolStripMenuItem("Window");
            ToolStripMenuItem windowNewMenu = 
              new ToolStripMenuItem("New", null, new EventHandler(windowNewMenu_Click));
            windowMenu.DropDownItems.Add(windowNewMenu);
            ((ToolStripDropDownMenu)(windowMenu.DropDown)).ShowImageMargin = false;
            ((ToolStripDropDownMenu)(windowMenu.DropDown)).ShowCheckMargin = true;

            //指定Mdi窗体显示WindowMenu子菜单
            ms.MdiWindowListItem = windowMenu;

            //将windowsMenu添加到主菜单
            ms.Items.Add(windowMenu);

            //主菜单Dock到最上面
            ms.Dock = DockStyle.Top;

            //将窗口主菜单指定为ms菜单
            this.MainMenuStrip = ms;

            //窗体添加上下左右工具栏容器
            this.Controls.Add(tspRight);
            this.Controls.Add(tspLeft);
            this.Controls.Add(tspBottom);
            this.Controls.Add(tspTop);

            //窗体添加主菜单控件
            //这里添加顺序非常重要,直接影响布局
            this.Controls.Add(ms);
        }

        //点击新建,创建窗体
        void windowNewMenu_Click(object sender, EventArgs e)
        {
            Form f = new Form();
            f.MdiParent = this;
            f.Text = "Form - " + this.MdiChildren.Length.ToString();
            f.Show();
        }
    }
}

相关推荐

MySql系列-常用命令

本篇是对...

Record.ToTable 格式转换

本期案例对表格格式进行转换,前后转换效果如下:解题套路1.Record.ToTable解题思路:思路就是构造可以透视的样式。使用Record.ToTable对行记录进行转换,获得包含两列的表,首行可以...

Table.Group 按时期累计计算唯一值

本期案例是根据不同id进行汇总统计:组内,相同日期的为一组,统计“from”、“to”中的非重复个数;连续日期的,统计累计数。前后转换效果如下:解题套路1.Table.Group...

MySQL 9.1正式发布,有哪些值得关注的新特性?

MySQL创新版9.1.0于2024年10月15日正式发布。此外,MySQL8.0.40及8.4.3补丁版本也同时发布。8.4.3是目前MySQL的LTS长期支持版本,该版本中将不会增加新的功能与特性...

SQL基本语句练习(基础版)

最近在学习SQL基本语句的练习,在此分享一下笔者做过的练习以及个人的解决教程:首先是基本练习表格的搭建,具体内容如下表所示:...

SQL 从入门到精通:全面掌握数据库操作

学习SQL(StructuredQueryLanguage)是掌握数据库操作的关键步骤。SQL是一种用于管理和处理关系型数据库的标准语言,广泛应用于数据检索、插入、更新和删除等操作。以下是一些...

ClickHouse学习笔记四ClickHouse基础语法

前言这里我们介绍ClickHouse的基本语法,使用环境是腾讯云的ClickHouse。默认情况下,ClickHouse在进行集群纬度执行建表等DDL操作时需要手动添加ONCLUSTERX...

程序员总结的常用sql语句大全

多年经验程序员总结的我们一般需要使用的sql语句,赶快收藏起来,方便以后使用。以下是一些常用的SQL语句及其用法:一、数据定义语言(DDL)创建库CREATEDATABASE:创建一个新数据库。...

PQ03-分组求和

目标已知:销售清单求:每个销售员的销量合计方法数据准备...

好荐:一款数据库元数据管理平台工具

“元数据”的定义在不同的软件、项目、工程的定义范围都不太一样。本文这里指的是软件项目开发使用的数据库表结构信息。我今天介绍的这个开源项目叫Databasir,它是一个面向团队的关系型数据库模型文档管理...

MySQL 8.0 SQL优化黑科技,面试官都不一定知道!

前言提到SQL优化,大多数人想到的还是那些经典套路:建索引、避免全表扫描、优化JOIN顺序…这些确实是基础,但如果你还停留在MySQL5.7时代的优化思维,那就out了。MySQL8.0已经发布好...

MySQL数据库深度优化指南:从基础到架构层面的20个关键策略

一、核心性能优化原则数据最小化原则...

动物源性食品中兽药残留的检测——喹啉类药物残留

喹啉类药物(quinoxaline)是具有喹啉-N1,N4-二氧化物基本结构的一类化学合成的动物专用药,具有广谱抗菌、提高饲料转化率和促生长作用。1965年德国拜耳公司以邻硝基苯胺为原料合成喹乙醇(o...

适合普通开发者和产品经理的PHP应用模板开发AI的SaaS应用框架

简单到傻!Liang_SaaS适合普通开发者和产品经理的PHP应用模板开发AI的SaaS应用框架,利用Php开发AI的SaaS应用框架,是一个强大的内容管理仪表板模板,基于Bootstrap和...

Power Query 交错合并表格的方法

两张表格合并成一张表格,需要交错排列,表1取一行,表2取一行,这样排列在一起:前提是两张表的行数相同,内容排列顺序相同:我们来看两张表:表1:12列10行表2:11列10行行数相同列数不同,我们在数据...