网站首页 > 技术文章 正文
摘要
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();
        }
    }
}猜你喜欢
- 2025-09-13 从 Java 代码逆向工程生成 UML 类图和序列图
- 2025-09-13 Lovart深度体验:不止是出图,它真能帮你干活!
- 2025-09-13 5款最佳的macOS菜单栏应用,你知道几个?
- 2025-09-13 谷歌正式发布Android 12,UI更好看,打造属于自己的定制化属性
- 2025-09-13 MFC IP地址控件、拆分按钮和超链接
- 2025-09-13 键盘上的Enter键为什么翻译成“回车”?
- 2025-09-13 秒搭大厂级后台!Arco Design 组件库,让设计稿和开发无缝对接
- 2025-09-13 CSS锚点定位:前端布局的革命性突破
- 2025-09-13 前端佬们!塌房了!用过Element-Plus的进来~
- 2025-09-13 被偷家了!崩溃!!Element-plus组件测试的后续~
- 最近发表
- 
- 聊一下 gRPC 的 C++ 异步编程_grpc 异步流模式
- [原创首发]安全日志管理中心实战(3)——开源NIDS之suricata部署
- 超详细手把手搭建在ubuntu系统的FFmpeg环境
- Nginx运维之路(Docker多段构建新版本并增加第三方模
- 92.1K小星星,一款开源免费的远程桌面,让你告别付费远程控制!
- Go 人脸识别教程_piwigo人脸识别
- 安卓手机安装Termux——搭建移动服务器
- ubuntu 安装开发环境(c/c++ 15)_ubuntu安装c++编译器
- Rust开发环境搭建指南:从安装到镜像配置的零坑实践
- Windows系统安装VirtualBox构造本地Linux开发环境
 
- 标签列表
- 
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
 
