版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章菜单、工具栏和状态条6.4菜单工具栏的设计状态条综合应用6.1菜单6.1.1认识菜单菜单通常由多个菜单标题组成,当单击菜单标题时就会打开它所包含的项目下拉列表或执行该菜单的命令。下拉列表菜单的菜单项由多个菜单命令、分隔线和子菜单项组成。图6.1展示了VB.NET的部分菜单示例。6.1.2
创建菜单要在窗体上创建一个标准菜单,首先从工具箱中把一个MenuStrip控件拖动到窗体上。MenuStrip控件不会显示在窗体上,因为它没有可视化的外观,而是显示在窗体设计区域下面的一个独立面板上,如图6.2所示。6.1.2
创建菜单还可以通过修改菜单项的属性,来改变菜单的标题和状态,菜单项的常用属性见表6.1。属
性说
明Name菜单的名字,可以通过它来访问菜单项的各个属性和方法Text该属性用来显示标题,表示菜单项要显示的文本内容
Enable该属性用来设置菜单是否会对事件产生反应,如果值为True,则能响应外部事件;如果值为False,以暗淡显示,表示不能响应外部事件Visible该属性用于设置菜单项可见与不可见,如果设置其值为True则菜单项
,如果设置其值为False,则该菜单项将被隐藏ShortcutKeys该属性用于与菜单项关联的快捷键ShowShortcutKeys该属性用于设置是否显示菜单项的快捷键,True表示运行时,在菜单项的标题部分显示快捷键,False则表示不显示Checked该属性用于设置该菜单项是否显示复选标记表6.1菜单项的常用属性6.1.2
创建菜单【例6.1】新建一个项目,并在窗体上放置一个MenuStrip控件和文本控件,设置各对象的属性如表6.2所示,建立如图6.3所示的窗体界面,并为其中的编辑菜单添加相应的功能代码。
6.1.2
创建菜单表6.2列出了文本框和各菜单项的属性设置对象名称属性名属性值Mnu_FileText文件(&F)Mnu_File_NewText新建Mnu_File_OpenText打开Mnu_File_SaveText保存Mnu_line1Text-Mnu_File_SetPaperText页面设置Mnu_File_PrintText打印Mnu_line2Text-Mnu_File_ExitText退出Mnu_EditText编辑(&E)Mnu_Edit_CutText剪切Mnu_Edit_CopyText复制Mnu_Edit_PasteText粘贴Mnu_Edit_DelText删除Mnu_line3Text-Mnu_Edit_SelectAllText全选Mnu_Edit_DateText时间/日期Mnu_AboutText关于(&A)Textbox1MultilineTrue表6.2文本框和各菜单项的属性设置6.1.2
创建菜单使用主菜单控件创建菜单界面后,只有为它们添加事件过程,菜单命令才能发挥作用。菜单项支持的惟一的事件就是Click事件。在运行时,当用户选择一个菜单命令后,VB.NET就生成了一个Click事件,因此要让菜单命令得到响应,就必须编写相应的Click事件。为上面菜单的编辑菜单中的菜单项添加下列代码,使菜单跟能实现编辑的有关功能。程序内容。6.1.3动态添加菜单项【例6.2】动态菜单项的创建。界面设计:在【例6.1】的基础上,添加一个按钮,并改变它的Text属性为“添加菜单”。在按钮的单击事件中添加代码。程序设计:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
HandlesButton1.Click DimmnuiFirstAsToolStripMenuItem mnuiFirst=NewToolStripMenuItem("动态菜单") mnuiFirst.DropDownItems.Add("新增菜单第一项") mnuiFirst.DropDownItems.Add("第二项") mnuiFirst.DropDownItems.Add("第三项") mnuiFirst.DropDownItems.Add("-") mnuiFirst.DropDownItems.Add("关闭") Me.MenuStrip1.Items.Add(mnuiFirst)EndSub6.1.3动态添加菜单项在上面的代码中,利用New关键字创建一个菜单项,并指定菜单项的名称,例如“动态菜单”,代码如下:mnuiFirst=NewToolStripMenuItem("动态菜单")该代码也可以换成以下的代码。mnuifirst=NewToolStripMenuItem()mnuifirst.Text="动态菜单"使用DropDownItems集合的Add方法将子菜单选项添加到菜单中,代码如下面所示,其中“-”表示分隔线mnuiFirst.DropDownItems.Add("新增菜单第一项")mnuiFirst.DropDownItems.Add("第二项")mnuiFirst.DropDownItems.Add("第三项")mnuiFirst.DropDownItems.Add("-")mnuiFirst.DropDownItems.Add("关闭")6.1.3动态添加菜单项最后使用菜单集合Items的Add方法将创建的菜单项添加到窗体的主菜单中,代码如下,其中Me用来代表当前的窗体或对象。Me.MenuStrip1.Items.Add(mnuiFirst)上面的代码运行后,单击“添加菜单”按钮,则在窗体上将增加“动态菜单”,运行程序后,单击按钮前后的菜单如图6.4所示。
6.1.4设置上下文快捷菜单【例6.3】在【例6.2】的基础上为文本框添加一个上下文快捷菜单。界面设计:在窗体上放置一个ContextMenuStrip控件选中该控件,在出现一个名称为“上下文菜单”的可视化菜单编辑器,双击该编辑器,按照设置主菜单的方法,在其中依次“撤消”、“-”、“复制”、“剪切”、“粘贴”、“删除”等菜单项,则该上下文菜单就设计好了,再设置文本框的ContextMenuStrip属性为ContextMenuStrip即可。程序运行后,右击文本框,则将弹出如图6.5所示的上下文菜单。6.1.4设置上下文快捷菜单前面讲到,在VB.NET中,可以动态添加菜单项,也可以利用动态添加菜单项的方法动态添加上下文快捷菜单。但是动态添加上下文快捷菜单不需要设置菜单标题,例如要添加图6.5所示的上下文菜单,可以在按钮中添加如下的代码:PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
HandlesButton2.Click DimcmnuFirstAsContextMenu cmnuFirst=NewContextMenu() cmnuFirst.MenuItems.Add("撤消") cmnuFirst.MenuItems.Add("-") cmnuFirst.MenuItems.Add("复制") cmnuFirst.MenuItems.Add("剪切") cmnuFirst.MenuItems.Add("粘贴") cmnuFirst.MenuItems.Add("删除") TextBox1.ContextMenu=cmnuFirstEndSub6.2工具栏的设计6.2.1工具栏控件尽管
ToolStrip替换了早期版本的控件并添加了功能,但是仍可以在需要时选择保留
ToolBar以备向后兼容和将来使用。ToolStrip控件常用属性如表6.3所示属性名说明GripStyle获取或设置
ToolStrip移动手柄是可见还是隐藏LayoutStyle获取或设置一个值,该值指示
ToolStrip如何对项集合进行布局。Items获取属于
ToolStrip的所有项ShowItemToolTip获取或设置一个值,该值指示是否要在
ToolStrip项上显示工具提示。Stretch获取或设置一个值,该值指示
ToolStrip在
ToolStripContainer中是否从一端拉伸到另一端。表6.3ToolStrip控件的常用属性6.2.1工具栏控件ToolStrip控件常用事件是Click事件,在Click事件过程中通常使用Buttons.IndexOf方法判断用户单击了工具栏中哪个按钮,该方法返回被单击按钮的索引值。例如: IfToolstrip1.Buttons.IndexOf(e.Button)=0Then
MsgBox("你单击了第一个按钮") EndIf6.2.1工具栏控件【例6.4】ToolStrip控件实例在【例6.3】的基础上为窗体添加1个ToolStrip控件,添加控件后的界面如图6.6所示。添加了ToolStrip控件后,该控件将自动放置在窗体上菜单栏的下面。给工具栏控件添加按钮的方法是:选中ToolStrip控件,单击向下箭头,然后单击“Button”以向工具栏中添加一个按钮,如图6.7所示。6.2.1工具栏控件在工具栏上添加四个按钮,设置它们的Text属性分别为:“复制”、“剪切”、“粘贴”、“删除”,DisplayStyle属性设置为“Text”,设置工具栏按钮及按钮属性后的界面如图6.8所示。6.2.2图像列表框(ImageList)控件图像列表框的主要属性是Images和ImageSize属性,Images属性是图像列表的集合,单击Images属性右边的按钮,将弹出“Images集合编辑器”对话框,如图6.9。6.2.2图像列表框(ImageList)控件在对话框中,分别选择表示“复制”、“剪切”、“粘贴”、“删除”的图片,则在Images集合编辑器中将添加了4项列表,添加后如图6.10所示。6.2.2图像列表框(ImageList)控件【例6.5】为工具栏添加图片,并编写程序,是工具栏能响应用户的单击事件。在【例6.4】的窗体上删除“添加菜单”按钮及其事件代码并添加ImageList控件,该控件将显示在窗体的下方。用上面介绍的方法,为ImageList控件添加四个图片,如图6.10所示。设置属性:工具栏中的4个ToolStripButton的DisplayStyle属性值设置为ImageAndText。添加事件:分别添加窗体Form1的Load事件和4个ToolStripButton的Click事件。程序代码。6.2.2图像列表框(ImageList)控件运行程序:按【F5】快捷键运行程序,结果如图6.11所示。6.3状态条6.3.1状态条控件的常用属性状态条的常用属性见表6.4。属性名说明ImageList获取或设置包含
ToolStrip项上显示的图像的图像列表Items获取属于
ToolStrip的所有项Text获取或设置与此控件关联的文本Dock获取或设置哪些
StatusStrip边框停靠在其父控件上,并确定
StatusStrip如何随其父控件一起调整大小Name获取或设置控件的名称Stretch获取或设置一个值,指示
StatusStrip是否在其容器中从一端拉伸到另一端表6.4StatusStrip控件的常用属性6.3.2状态条控件的常用事件StatusStrip控件常用事件是Click事件,一般情况下,不在状态条的事件过程中编写代码,状态条的主要作用是用于显示系统信息。6.3.3状态条控件应用实例【例6.6】在【例6.5】的窗体上添加状态条,并使其能显示文本框中的字符数,系统当前的日期和时间。界面设计:在例6.5的窗体上添加一个Timer控件和一个StatusStrip控件,该控件会自动添加到窗体的底部。选中该控件,单击向下三角形,分别添加3个ToolStripStatusLabel,如图6.12所示。3个ToolStripStatusLabel的Text属性分别设置为“length”、“date”和“time”,BorderSides都设置为“All”表示显示边框的面板的边。其中ToolStripStatusLabel1的Image选择准备好的图片。Time1的Enabled设置为“True”,设计好后如图6.13所示。
6.3.3状态条控件应用实例程序设计:切换到代码编辑器,在文本框的TextChanged事件中添加如下代码:PrivateSubTextBox1_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
HandlesTextBox1.TextChangedToolStripStatusLabel1.Text="文本框中的字符数为:"&TextBox1.TextLengthEndSub在timer控件的Tick事件中添加以下代码:PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
HandlesTimer1.TickToolStripStatusLabel2.Text="系统当前的日期为:"&Format(Now,"yyyy-MM-dd")ToolStripStatusLabel3.Text="系统当前的时间为:"&Format(Now,"hh:mm:ss")EndSub6.3.3状态条控件应用实例则程序运行后,在文本框输入一定的内容,窗体界面如图6.14所示。6.4综合应用【例6.7】记事本设计。界面设计:
在窗体中放置一个MenuStrip控件、一个ContextMenuStrip控件、一个ToolStrip控件、一个StatusStrip控件、一个文本框控件、一个Timer控件和对话框控件、一个OpenFileDialog控件和一个SaveFileDialog控件。并利用前面的例子给出的方法,设计出图6.15所示的界面。6.4综合应用利用【例6.1】中的方法,为窗体添加菜单,文件菜单和编辑菜单的各子菜单见图6.16。
6.4综合应用利用【例6.3】中的方法,为文本框添加上下文快捷菜单。如图6.17所示。利用【例6.4】中的方法,为窗体添加工具栏。其中4个ToolStripButton的Image设置为准备好的图片。设计后的菜单如图6.17所示。利用【例6.6】中的方法,为窗体添加状态条。添加状态条后如图6.18所示。
6.4综合应用切换到设计视图,分别双击ToolStrip控件的4个按钮,编写相应的代码。程序代码如下:PrivateSubToolStripButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_ HandlesToolStripButton1.ClickTextBox1.Copy() '复制EndSubPrivateSubToolStripButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_ HandlesToolStripButton2.ClickTextBox1.Cut() '剪切EndSubPrivateSubToolStripButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_ HandlesToolStripButton3.ClickTextBox1.Paste() '粘贴EndSubPrivateSubToolStripButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_ HandlesToolStripButton4.ClickTextBox1.SelectedText="" '删除EndSub6.4综合应用在文本框控件的TextChange事件中,编写相应的代码。使得当文本内容发生变化时,实时改变状态栏中字符数的信息。程序代码如下:PrivateSubTextBox1_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
HandlesTextBox1.TextChanged ToolStripStatusLabel1.Text="字符数:"&TextBox1.TextLengthEndSub在时钟(Timer)控件的Tick事件中,编写相应的代码。使得定时时间到以后,实时改变状态栏中的时间信息。利用Format函数,实现格式化输出。程序代码如下:PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
HandlesTimer1.TickToolStripStatusLabel2.Text="日期:"&Format(Now,"yyyy-MM-dd")ToolStripStatusLabel3.Text="时间:"&Format(Now,"hh:mm:ss")EndSub6.4综合应用在“新建”菜单项中,编写的代码。使得文本框的内容被清空,等待重新开始输入文本内容。程序代码如下:PrivateSubmnu_File_New_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
Handlesmnu_File_New.ClickTextBox1.Text=""EndSub6.4综合应用在“打开”菜单项中,编写的代码。利用OpenFileDialog的ShowDialog方法,选择需要读取的文本文件,并将文件内容读出显示到文本框中。程序代码如下:PrivateSubmnu_File_Open_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
Handlesmnu_File_Open.ClickDimfilenameAsStringDimfAsSystem.IO.FileStreamDimrAsSystem.IO.StreamReaderOpenFileDialog1.ShowDialog()'调用对话框filename=OpenFileDialog1.FileName'获取选中的文件名f=NewSystem.IO.FileStream(filename,IO.FileMode.Open,IO.FileAccess.Read)r=NewSystem.IO.StreamReader(f)TextBox1.Text=r.ReadToEnd()'读文件r.Close()EndSub6.4综合应用在“保存”菜单项中,编写的代码。利用SaveFileDialog的ShowDialog方法,设置保存的文件名,并将文本框中的内容保存到该文件中。程序代码如下:PrivateSubmnu_File_Save_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
Handlesmnu_File_Save.ClickDimfilenameAsStringDimwAsSystem.IO.StreamWriterSaveFileDialog1.ShowDialog() '调用对话框filename=SaveFileDialog1.FileName'获取选中的文件名w=System.IO.File.CreateText(filename)w.Write(TextBox1.Text) '写文件w.Close()EndSub6.4综合应用在“退出”菜单项中,编写的代码。退出程序的运行。程序代码如下:PrivateSubmnu_File_Exit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
Handlesmnu_File_Exit.Click End '结束程序的运行EndSub在“剪切”菜单项的代码如下:PrivateSubmnu_Edit_Cut_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
Handlesmnu_Edit_Cut.ClickTextBox1.Cut() '调用文本框的Cut方法,实现剪切功能EndSub在“复制”菜单项的代码如下:PrivateSubmnu_Edit_Copy_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
Handlesmnu_Edit_Copy.ClickTextBox1.Copy() '调用文本框的Copy方法,实现复制功能EndSub6.4综合应用在“粘贴”菜单项的代码如下:PrivateSubmnu_Edit_Paste_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_ Handlesmnu_Edit_Paste.ClickTextBox1.Paste() '调用文本框的Paste方法,实现粘贴功能EndSub在“删除”菜单项的代码如下:PrivateSubmnu_Edit_Del_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_ Handlesmnu_Edit_Del.ClickTextBox1.SelectedText=""
'使文本框选中的内容为空,实现删除功能EndSub在“全选”菜单项的代码如下:PrivateSubmnu_Edit_SelectAll_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_ Handlesmnu_Edit_SelectAll.ClickTextBox1.SelectAll()'选中所有文本EndSub6.4综合应用在“时间/日期”菜单项的代码如下:PrivateSubmnu_Edit_Date_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
Handlesmnu_Edit_Date.Click '在文本框中插入日期和时间TextBox1.SelectedText=Format(Now,"yyyy-MM-ddhh:mm:ss")EndSub在上下文快捷菜单“撤销”项的代码如下:PrivateSub撤销ToolStripMe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业自动化中的智能优化算法考核试卷
- 人事行政培训职业道德与职业操守考核试卷
- 公司合并与收购的财务税务考虑考核试卷
- 森林改培与城市森林绿化考核试卷
- 梨花绘画课件教学课件
- DB11T 714.2-2010 电子政务运维服务支撑系统规范 第2部分:符合性测试
- 负反馈课件教学课件
- 食堂员工培训计划方案
- 《过秦论》培训课件
- 业务人员法律知识培训
- 江西省萍乡市2024-2025学年高二上学期期中考试地理试题
- 2023年贵州黔东南州州直机关遴选公务员考试真题
- 黑龙江省龙东地区2024-2025学年高二上学期阶段测试(二)(期中) 英语 含答案
- 4S店展厅改造装修合同
- 送货简易合同范本(2篇)
- 全国职业院校技能大赛赛项规程(高职)智能财税
- 七年级上册音乐教案 人音版
- 某小区住宅楼工程施工组织设计方案
- 3-4单元测试-2024-2025学年统编版语文六年级上册
- 2024年新青岛版六年级上册(六三制)科学全册知识点
- 小学数学计算专项训练之乘法分配律(提公因数)
评论
0/150
提交评论