当前位置:首页 > 技术知识 > 正文内容

68.C# MenuStrip控件_c#控件属性说明

maynowei6个月前 (09-18)技术知识84

摘要


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

相关文章

B端产品设计之业务设计(b端产品ui设计)

编辑导语:在这篇文章里,作者从解决方案设计、业务流程设计、产品功能设计三个方面,分析了如何进行B端产品的业务设计,感兴趣的小伙伴们一起来看一下吧。前篇文章讲了业务梳理,还没看过的同学可以先看看前篇文章...

打通 JAVA 与内核系列之 一 ReentrantLock 锁的实现原理

写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中synchronized锁是JAVA语言层面提供的能力,在此不...

centos系统安装oracle简易客户端instantclient

一、目录1:centos 环境准备2:instant client 下载3:instant client 安装4:instant client 配置5:测试连接二、安装步骤1:zip,unzip命令安...

Oracle数据库无法连接问题排查(oracle数据库连接不成功)

数据库告警日志 如下图 。发现 问题时间段,没有 数据库服务故障 报错,但是存在较多 TNS-12535 、 12560 、 12170 、 00505 错误:通过检查问题时间段应用日志, 也记录了...

见招拆招:破解Oracle数据库密码(oracle数据库如何解锁)

一.概要本文主要目的,希望通过分享解密方法引起相关人士对网络安全的重视。数据库安全绝不单只数据库本身的安全,和数据库所处的整个环境都有密切关系。本文所说的破解oracle9i、oracle10g、or...

Diplomacy Talk | Why building a shared future matters now more than ever

What does it mean to build a global community of a shared future? First put forward by Chinese Presi...