在我们常见的软件中,菜单栏,工具栏,状态栏,以及右键弹出的上下文菜单,根本属于是一个软件的标配,如WPS,Microsoft Office组件,IE欣赏器,Visual Studio等,使用这些组件结构体系,不但可以进步使用便捷性,公道使用页面空间,由于符合Windows用户使用风俗,还能让用户快速上手。本日我们以一些简单的小例子,简述基于.NET的Windows窗体编程中菜单栏,工具栏,状态栏,以及上下文菜单的常见用法,仅供学习分享使用,如有不敷之处,还请指正。
概述
在软件结构中,菜单栏(MenuStrip),工具栏(ToolStrip),状态栏(StatusStrip),快捷菜单(ContextMenuStrip),这几个组件通常组合使用,偶然还会共同多窗口(MDI),实现更复杂的UI结构,这几个组件既是根本组件,也是必须要把握的核心组件。常见的组件如下:
- MenuStrip,体现一个Form表单中的菜单框架容器,可以往内里添加ToolStripMenuItem范例的菜单项,每一个菜单项可以实行相应的下令,大概包罗其他子菜单项。
- ToolStrip ,此控件及其关联的类提供了一个通用框架,用于将用户界面元素归并到工具栏、状态栏和菜单。可以使用ToolStrip来跨容器表现通用用户界面,创建易于自界说的常用工具栏。
- ContextMenuStrip,体现上下文菜单,它不可以独立存在,必须依附于某一个控件,在点击控件右键的时间弹出。
- StatusStrip,表现状态栏,此控件用于窗体中某个地区,通常表现在窗口底部,应用步调可以在此地区表现各种状态信息。
- MDI窗口,正常创建出来的窗体都是单一窗口(Single-Document-Interface),而MDI窗口,又称多文档界面窗体 (Multiple-Document-Interface ),用于同时表现多个文档,MDI 子窗体的创建制止了用户打开很多窗口的时间使命栏中挤满了窗体。
MenuStrip
MenuStrip,体现一个Form表单中的菜单框架容器,可以往内里添加ToolStripMenuItem范例的菜单项,每一个菜单项可以实行相应的下令,大概包罗其他子菜单项。
MenuStrip的关键属性:
- Items,体现MenuStrip的菜单项列表,它是ToolStripItemCollection范例,可以用于获取全部的菜单项,它支持ToolStripMenuItem,ToolStripComboBox,ToolStripTextBox三种子范例添加。
- ToolStripMenuItem,体现MenuStrip中的菜单项,它也包罗DropDownItems属性,用于添加子菜单项,而DropDownItems属性是ToolStripItemCollection范例,它支持ToolStripMenuItem,ToolStripComboBox,ToolStripTextBox,ToolStripSepator四种子范例。
- ItemClicked,体现MenuStrip中的菜单项被点击时触发的变乱,通过此变乱可以处理惩罚菜单点击后的业务。且此变乱参数为ToolStripItemClickedEventArgs范例,此范例包罗ClickedItem属性,体现点击的菜单项。
- MdiWindowListItem,体现是MDI窗口打开时,表现的已经打开的子窗口列表,默以为空,须要手动添加。
起首拖动MenuStrip控件到Form表单中,并修改Name属性,将其定名为menuStrip。默认环境下,拖动MenuStrip到Form表单中,会自动将Form的MainMenuStrip属性设置为此MenuStrip菜单,如果运行步调时没有表现添加的菜单,可以手动设置,如下所示:
选择menuStrip控件,在点击右侧的“玄色右三角”在弹出的MenuStrip使命菜单中,点击“编辑项...”,弹出“项聚集编辑器”对话框,如下所示:
在打开的“项聚集编辑器”窗口中,选择要添加的项(共有四种:MenuItem,ComboBox,TextBox),然后点击“添加(A)”按钮。选择添加的菜单项,可以在右侧弹出的属性窗口中,修改相应属性(如:Name),如下所示:
在菜单项属性窗口中,可以通过Text修改表现的文本,格式为“文本(&键)”,此中键为快捷键,默认是“Alt+快捷键”的组合键取代鼠标点击,如下所示:
选择添加的菜单项,在右侧的属性窗口中,选择DropDownItems,点击右侧的“...”按钮,打开菜单项的“项聚集编辑器”对话框,如下所示:
在打开的子菜单项的“项聚集编辑器”对话框中,选择添加的子菜单项,然后点击“添加(A)”按钮。子菜单项添加后,可以在右侧的属性窗口中,修改相应的属性(如:Name,Text,DropDownItems等),如下所示:
分析:全部的控件的Name属性,在Form范围内,必须具备唯一性。
插入尺度项,WinForms框架为我们提供了基于Windows使用体系的尺度项菜单,选择menuStrip控件,在点击右侧的“玄色右三角”在弹出的MenuStrip使命菜单中,点击“插入尺度项”如下所示:
插入的尺度项菜单,在“项聚集编辑器”中可以看到添加的菜单项,表现如下所示:
运行步调,添加的尺度项菜单如下所示:
分析:MenuStrip控件默认Dock属性为Top,会自动放置在Form窗体的最顶端。
ToolStrip
ToolStrip控件及其关联的类提供了一个通用框架,可以使用ToolStrip来跨容器表现通用用户界面,创建易于自界说的常用工具栏。
起首拖动ToolStrip工具栏到Form表单中,并定名为toolStrip,选择toolStrip控件,然后点击右侧的“玄色右三角”,在弹出的ToolStrip使命菜单中,点击“编辑项...”,如下所示:
在弹出的“项聚集编辑器”窗口中,选择须要添加工具项,然后点击“添加(A)”按钮,添加后工具项后,在右侧的属性对话框中,可以修改工具项的相干属性,如:Name,Text,Image,DisplayStyle等。
此中关键属性如下:
- Image,设置工具栏按钮的图标
- Text,设置工具栏字项的文本。
- DisplayStyle,设置表现样式,告急有几个选项:None,Text(只表现文本),Image(只表现图标),ImageAndText(文本和图标都表现)。
- TextImageRelation,设置图标和文本的关系,告急有几个选项:Overlay,ImageAboveText,TextAboveImage,ImageBeforeText,TextBeforeImage。
尺度项工具栏,WinForms框架为我们提供了基于Windows使用体系的尺度项工具栏,选择toolStrip控件,在点击右侧的“玄色小三角”在弹出的ToolStrip使命菜单中,点击“插入尺度项”如下所示:
在ToolStrip的“项聚集编辑器”窗口中,检察插入的尺度项工具栏,如下所示:
运行步调,添加的尺度项工具栏如下所示:
ContextMenuStrip
ContextMenuStrip控件提供了一个快捷菜单,可以将其与控件相干联。当用户单击控件的鼠标右键时,快捷菜单(也称为上下文菜单)表现在鼠标位置。 快捷菜单为工作区或鼠标指针位置处的控件提供选项。
起首拖动ContextMenuStrip控件到Form表单中,并定名为contextMenuStrip,由于ContextMenuStrip组件不能独立存在,只会表现在Form表单的底部,先选择控件,点击控件的右侧上方“玄色右三角”,在弹出的“ContextMenuStrip使命”窗口中,点击“编辑项...”,如下所示:
在弹出的“项聚集编辑器”窗口中,选择须要添加的项(它支持ToolStripMenuItem,ToolStripComboBox,ToolStripTextBox,ToolStripSepator四种子范例),然后点击“添加”,并在右侧属性窗口中,修改添加的项的属性,如:Name,Text等,如下所示:
将Form表单中的控件或Form表单本身的ContextMenuStrip属性绑定到contextMenuStrip控件,如下所示:
当运行步调时,在Form表单的空缺处,点击鼠标右键,将会弹出对应的“上下文菜单”,如下所示:
StatusStrip
StatusStrip控件用于窗体中某个地区,通常表现在窗口底部,应用步调可以在此地区表现各种状态信息。StatusStrip组件支持四种子控件范例,如下所示:
- ToolStripStatusLabel 告急表现状态文本,也可以表现图像。
- ToolStripDropDownButton,体现点击此按钮会弹出下拉选项的的按钮列表。
- ToolStripSplitButton,体现分隔按钮。
- ToolStripProgressBar ,体现进度条,用于表现步调运行的状态。
拖动StatusStrip控件到Form表单中,并定名为statusStrip,然后选中此控件,在点击控件右侧的“玄色右三角”,在弹出的“StatusStrip使命”窗口中,点击“编辑项...”,如下所示:
在弹出的“项聚集编辑器”窗口中,选择须要添加的项,然后点击“添加(A)”按钮,状态栏控件项添加后,可以在右侧的属性窗口中,修改控件的属性,如下所示:
MDI窗体
正常创建出来的窗体都是单一窗口(Single-Document-Interface),而MDI窗口,又称多文档界面窗体 (Multiple-Document-Interface ),用于同时表现多个文档,MDI 子窗体的创建制止了用户打开很多窗口的时间使命栏中挤满了窗体。MDI窗口常用的属性有以下几个:
- IsMdiContainer,用于设置主窗体,是否为MDI容器,只有设置为true,才气做为MDI容器,否则就是单一窗体。
- MdiParent,设置子窗体所属的MDI容器页面,设置完成后,此窗体就做为MDI窗体的一部门。
- MdiChildren,体现此MDI容器已经包罗的子窗体列表。
起首设置要作为容器的窗体的IsMdiContainer属性为true,可以通过属性栏举行设置,如下图所示:
添加菜单栏,通过工具箱拖动MenuStrip控件到MDI主窗体,菜单栏的Dock属性默以为Top,可以根据现实须要举行修改。
为菜单栏添加菜单,可以通过点击MenuStrip右侧的[小三角],在弹出的MenuStrip使命菜单,然后点击[编辑项...],打开项聚集编辑器,如下所示:
本示例添加三个菜单,分别用于打开三个窗口。为MenuStrip添加ItemClicked变乱,并添加如下业务逻辑代码:
- private void menuWin_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
- {
- Form form = null;
- var item = e.ClickedItem.Text;
- if(item == "窗口1")
- {
- form = new FirstForm();
- }
- if (item == "窗口2")
- {
- form = new SecondForm();
- }
- if (item == "窗口3")
- {
- form = new ThirdForm();
- }
- if (form != null)
- {
- form.Text = item;
- form.Width = 300;
- form.Height = 300;
- form.MdiParent = this;
- form.Show();
- }
- }
复制代码
在上述代码中,告急根据差异的菜单项,打开差异的窗体,并设置窗体的巨细,标题,MdiParent属性,然后调用Show方法举行展示。
设置MenuStrip的MdiWindowListItem属性,表现MDI容器中已经加载的窗体列表。在窗体初始化或Load变乱中添加如下代码:
- ToolStripMenuItem window=new ToolStripMenuItem("Window");
- this.menuWin.MdiWindowListItem=window;
- this.menuWin.Items.Add(window);
复制代码
MdiWindowListItem初始化乐成后,在添加MDI子窗体时,会自动添加到MdiWindowListItem的子项中。
颠末上述步调基于MenuStrip+MDI开辟的结构已经根本完成,运行步调后,点击菜单栏,打开窗口,默认如下所示:
窗口最大化,可以通过Window中的子项举行切换窗口,如下所示:
窗体最小化,默认环境下,最小化时停靠在容器底部(可以通过属性【MdiChildrenMinimizedAnchorBottom】举行修改),同时也可通过点击还原规复正常窗口巨细,如下所示:
Windows Form的MDI窗体提供了4种结构方式,分别为:
- Cascade,全部的MDI子窗体,叠加的表现在容器中,用户可以举行拖动调解位置,此为默认结构。
- TileHorizontal,全部的MDI子窗体,以程度平铺的方式表现在容器中。
- TileVertical,全部的MDI子窗体,以垂直平铺的方式表现在容器中。
- ArrangeIcons,全部的MDI子窗体,以分列图标的方式表现在容器中。
Cascade层叠结构,如下所示:
TileHorizontal程度平铺,如下所示:
TileVertical垂直平铺方式,如下所示:
以上就是《基于.NET的Windows窗体编程之WinForms菜单工具栏》的全部内容,盼望可以抛砖引玉,一起学习,共同进步。
免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金. |