




已阅读5页,还剩99页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江南大学信息工程学院计算机基础部,2008-01-20,第3章 Visual Basic 界面设计(下),制作者:钱瑛,本章的学习重点和难点,键盘鼠标事件和拖放 菜单设计 常用ActiveX控件介绍 图形和多媒体制作 合理选用对象和窗体布局,键盘与鼠标事件过程,键盘事件过程 对于接受文本输入的控件,如:文本框、简单组合框和下拉组合框等,需要控制和处理输入的文本,常常需要对键盘事件进行编程 KeyPress、KeyDown和KeyUp键盘事件只用于能够聚焦的对象,如窗体、文本框、命令按钮、选项按钮、复选框、组合框、列表框、图片框、滚动条等控件 对于窗体,仅当它上面没有可视和有效的控件或KeyPreview属性被设置为True时才能接收键盘事件,键盘与鼠标事件过程,键盘事件过程 KeyPress事件 当用户按下和松开一个能产生Ascii码的键时发生KeyPress事件。严格地说,当按下某个能产生Ascii码的键时,所触发的是当前得到焦点的那个对象的KeyPress事件 Private Sub 对象名_KeyPress(KeyAscii As Integer) End Sub 参数KeyAscii就是该过程接受到的按键的Ascii码 按下大写字母“B”,KeyAscii的值为66 按下小写字母“b”,KeyAscii的值为98,键盘与鼠标事件过程,键盘事件过程 KeyPress事件 在键盘上的按键并非都能产生Ascii码,如:方向键、功能键F1F12、Shift、Ctrl、Alt键就不产生Ascii码,不会引发KeyPress事件,而数字、大小写字母等可打印的键盘字符、Enter、BackSpace、Esc、Tab等都可以 KeyPress事件过程在截取TextBox或ComboBox控件所输入的击键时是非常有用的,它可立即测试击键的有效性或在字符输入时对其进行格式处理 改变keyascii参数的值会改变所显示的字符 *例题15 、*例题16,*例题15,编写程序,实现对于用户在文本框中输入的字母,不管大小写,始终以大写显示在文本框中 分析: 小写字母按键的Ascii值的范围97,122 小写转换成大写字符小写字母与大写字母的Ascii差值为32 输入时立即转换编写文本框的KeyPress事件过程,Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 97 And KeyAscii = 122 Then 判断是否是小写字母 KeyAscii = KeyAscii 32 小写转换成大写 End If End Sub,*例题16,在默认情况下,控件的键盘事件优先于窗体的键盘事件,因此在发生键盘事件时,总是激活目前得到焦点的控件的键盘事件;若窗体的KeyPreview属性被设置为True(默认为False),则不管目前谁得到焦点,总是先触发窗体键盘事件,后触发焦点控件的键盘事件,否则不会触发窗体的键盘事件 注意程序中当窗体的KeyPreview属性被设置为True或默认值False,键盘事件的不同触发次序 设窗体的KeyPreview属性被设置默认值False,程序运行时,通过命令按钮切换为True,在窗体和文本框的KeyPress事件过程中编写了输出标志信息,例3-1,Private Sub Text1_KeyPress(KeyAscii As Integer) Dim x As Integer If KeyAscii = 13 Then If Len(Text1.Text) = 1 And Text1.Text = “a“ And _ Text1.Text Asc(“z“) Then Text2.Text = Chr(x + 1) Else Text2.Text = Chr(x + 1 - 26) Else Text2.Text = “数据非法!“ End If End If End Sub,键盘与鼠标事件过程,键盘事件过程 KeyUp和KeyDown事件过程 和KeyPress事件不同,KeyUp和KeyDown事件返回的是键盘的直接状态,即KeyUp和KeyDown事件返回的是“键”,而KeyPress事件返回的是“字符”的Ascii码。 当用户按下键盘上的任意一个键时,就会触发焦点对象的KeyDown事件,当释放按键,就会触发KeyUp事件,键盘与鼠标事件过程,键盘事件过程 KeyDown事件过程 Private Sub 对象名_KeyDown(keycode As Integer, _ shift As Integer) End Sub KeyUp事件过程 Private Sub 对象名_KeyUp(keycode As Integer, _ shift As Integer) End Sub,键盘与鼠标事件过程,键盘事件过程 KeyUp和KeyDown事件过程 KeyCode参数是用户按下的那个键的扫描码(键盘上的每一个按键都一个扫描码,且各自不同),该码以“键”为准,它不同于KeyPress事件中的KeyAscii参数(以“字符”为准) 大小写字母“A”和“a”用的是同一个键,所以它们的扫描码相同,即KeyCode相同,而Ascii码不同(“A”是65、“a”是97),即KeyAscii不同 往往只能通过KeyCode参数了解用户按下键盘上的哪个键(不是字符),键盘与鼠标事件过程,键盘事件过程 KeyUp和KeyDown事件过程 Shift参数是Shift、Ctrl和Alt三个转换键目前按下的状态信息;取值是一个是位域,它用最少的位响应SHIFT键(位0)、CTRL键(位1)和ALT键(位2)。这些位分别对应于值1、2和4,键盘与鼠标事件过程,键盘事件过程 KeyUp和KeyDown事件过程的应用 扩展的字符键如功能键等 定位键 键盘修饰键和按键的组合 区别数字小键盘和常规数字键 *例题17,下列情况不会触发KeyDown和KeyUp事件 窗体有一个CommandButton控件,并且Default属性设置为True时的Enter键 窗体有一个CommandButton控件,并且Cancel属性设置为True时的Esc键 Tab键 *例题18,*例题17,编写程序,利用KeyDown和KeyUp事件显示按下键和释放键情况 分析: 根据KeyCode返回对应的字符Chr函数,Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Print “按下“; Chr(KeyCode); KeyCode End Sub Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) Print “释放“; Chr(KeyCode); KeyCode End Sub,Private Sub form_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 1 Then Print “按下Shift键“; KeyCode If Shift = 2 Then Print “按下Ctrl键“; KeyCode If Shift = 3 Then Print “按下Ctrl+Shift键“; KeyCode If Shift = 4 Then Print “按下Alt键“; KeyCode If Shift = 5 Then Print “按下Alt+Shift键“; KeyCode If Shift = 6 Then Print “按下Alt+Ctrl键“; KeyCode If Shift = 7 Then Print “按下Alt+Ctrl+Shift键“; KeyCode End Sub Private Sub form_KeyUp(KeyCode As Integer, Shift As Integer) Print “释放“; KeyCode End Sub,*例题18,编写程序,利用KeyDown和KeyUp事件显示按下和释放转换键情况,例3-2 编程判断窗体上按下的键是否为大写字母键,Private Sub Form_KeyDown(KeyCode As Integer, _ Shift As Integer) If KeyCode = Asc(“A“) And KeyCode = Asc(“Z“) Then If Shift = 1 Then Print “你按下的是大写字母“ & Chr(KeyCode) End If End If End Sub,键盘与鼠标事件过程,鼠标器事件过程 鼠标的单击和双击事件 鼠标事件:鼠标的按下、移动和释放事件,即MouseDown、MouseMove和MouseUp事件 适用于以下对象,包括窗体、文本框、命令按钮、选项按钮、复选框、列表框、图片框、标签、框架等 鼠标事件被用来识别和响应各种鼠标状态,并把这些状态看作独立的事件;在按下鼠标按钮并释放时,Click事件只能把此过程识别为一个单一的操作单击操作 鼠标事件不同于Click事件和DblClick事件之处还在于,鼠标事件能够区分各鼠标按钮与Shift、Alt、Ctrl键,键盘与鼠标事件过程,鼠标器事件过程 MouseDown事件过程 Private Sub对象名_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub MouseUp事件过程: Private Sub对象名_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub,键盘与鼠标事件过程,鼠标器事件过程 MouseMove事件过程: Private Sub 对象名_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Shift、X、Y参数的含义同键盘事件 Button参数值指示此时按下或释放了哪个鼠标键,该参数是一个整数,键盘与鼠标事件过程,鼠标器事件过程 对于MouseMove事件来说,button参数指示的是所有鼠标按键当前的状态;一个MouseMove事件可指示某些、全部或没有一个按钮被按下 MouseDown和MouseUp事件来说,button参数在每个事件精确地指示一个按键,即不能检查两个或三个键同时被按下或松开的情况,因此取值只能是下表中的前三种,键盘与鼠标事件过程,鼠标器事件过程 MouseDown是三种鼠标事件中最常使用的事件。例如,在运行时可用它调整控件在窗体上的位置,也可用它实现某些图形效果。按下鼠标按钮时就可触发此事件。 MouseMove事件伴随鼠标指针在对象间移动时连续不断地产生。除非有另一个对象捕获了鼠标,否则,当鼠标位置在对象的边界范围内时该对象就能接收MouseMove事件 *例题19 *例题20 *例题21,*例题19,利用上述鼠标事件,在窗体上绘制图形,要求:按下鼠标开始绘制,并根据鼠标移动的位置进行绘制,释放鼠标停止绘制 分析:,Dim drawstate As Boolean 设置绘制状态标志 Form_Load: DrawWidth = 10 设置绘制笔刷的宽度 ForeColor = RGB(0, 0, 255) 设置绘制的颜色 Form_MouseDown: drawstate = True 表示开始下笔绘制 Form_MouseMove: If drawstate Then PSet (X, Y) 根据目前鼠标移动的位置绘制点 End If Form_MouseUp: drawstate = False 表示停笔,*例题3-20,结合Move方法使用鼠标的MouseDown事件,实现根据鼠标按下的位置控制“云朵”在背景图片上的任意飘移 分析:,Dim mx As Single, my As Single, dx As Single, dy As Single Private Sub Form_Load() Timer1.Interval = 10 End Sub Private Sub picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) mx = (X - Image1.Left) / 100 计算云朵每次微移量 my = (Y - Image1.Top) / 100 dx = X : dy = Y 记录下目标位置 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Image1.Move Image1.Left + mx, Image1.Top + my If Abs(Image1.Left - dx) 1 Or Abs(Image1.Top - dy) 1 Then Timer1.Enabled = False End If End Sub,*例题21,利用上述鼠标的事件,并根据按下鼠标的左右键的不同,实现对命令按钮的鼠标操作时鼠标指针形状的改变 分析:,Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Command1.MousePointer = 11 ElseIf Button = 2 Then Command1.MousePointer = 13 End If End Sub Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Command1.MousePointer = 14 End Sub Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Command1.MousePointer = 0 End Sub,例3-3 利用鼠标事件编写一个画矩形的程序,Dim lx As Single, ly As Single, flag As Boolean 模块级变量(lx,ly)存放矩形左上角坐标,flag用来标识绘制状态 Private Sub Form_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) lx = X : ly = Y : MousePointer = 99 MouseIcon = LoadPicture(App.Path +CROSS03.CUR“) flag = True End Sub,例3-3 利用鼠标事件编写一个画矩形的程序,Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If flag = True Then Cls: DrawStyle = 2 Line (lx, ly)-(X, Y), , B End If End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single) Cls : DrawStyle = 0 Line (lx, ly)-(X, Y), , B MousePointer = 0 flag = False End Sub,拖放,鼠标将一个对象从某个位置拖曳到另一个位置 在拖放的过程中,总是首先将鼠标指向待移动的对象(称为源对象),然后按下鼠标键不松开,移动鼠标,源对象将随鼠标的移动而在其背景对象上被拖动(Drag),当被拖到目标位置(称为目标对象),则松开鼠标,放下(Drop)该对象 根据拖放情况的描述,经常利用源对象的鼠标按下事件,启动源对象的拖放模式,而利用目标对象的拖放(DragDrop)事件实现源对象的移动,当然,还会触发在拖动过程中经过的对象和目标对象的拖动(DragOver)事件,拖放,与拖放有关的属性、事件和方法 除了菜单、计时器和通用对话框外,其他对象均可以在程序运行期间被拖放 属性 DragMode:设置源对象的拖放模式。属性值为1,为自动拖动方式,控件不能正常响应鼠标事件。默认属性值为0,表示启用手动拖动方式,这时必须在MouseDown事件过程中,用Drag方法启动“拖动”,确定拖放操作开始;常常在MouseUp事件过程中,用Drag方法关闭“拖动”,确定拖放操作结束 DropIcon属性:用于设置在拖动时,代表对象移动的图标,拖放,与拖放有关的属性、事件和方法 方法 Drag:用于人工启动或停止一个拖动过程 对象名.Drag 整数 整数取值为0、1、2分别表示取消、开始或结束拖放操作。若此参数省略,则表示开始拖放操作,拖放,与拖放有关的属性、事件和方法 事件 DragOver:拖放操作正在进行时发生。可使用此事件对鼠标指针在一个有效目标上的进入、离开或停顿等进行监控。鼠标指针的位置决定接收此事件的目标对象 Private Sub 对象名_DragOver(index As Integer,source As Control, x As Single, y As Single, state As Integer) End Sub 其中:source参数表示被拖动的对象;state参数取值为0、1、2分别表示鼠标光标进入、退出或正位于目标对象的区域内,拖放,与拖放有关的属性、事件和方法 事件 DragDrop :在一个完整的拖放动作(将一个控件拖动到目标对象上并释放鼠标按钮)完成,或使用Drag方法,并将其action参数被设置为2时,该事件发生 Private Sub 对象名_DragDrop(index As Integer,source As Control, x As Single, y As Single) End Sub 一般利用DragDrop事件过程用来控制在一个拖动操作完成时将会发生的情况。例如,可将源控件移到一个新的位置或将一个文件从一个位置复制到另一个位置,拖放,应用举例 *例题 *例题,*例题,自动拖放:利用图片框控件的鼠标拖放操作,模拟邮件投递 分析:,Private Sub Form_Load() Picture2.Picture = LoadPicture(App.Path + “MAIL16A.ico“) 图片框2加载图片模拟空邮筒 Picture1.Picture = LoadPicture(App.Path + “MAIL03.ico“) 图片框1加载图片模拟邮件 Picture1.DragMode = 1 设置图片框1的拖动模式为自动 End Sub Private Sub Picture2_DragDrop(Source As Control, X As Single, Y As Single) 图片框2重新加载图片,模拟邮件投递到邮筒成功 Picture2.Picture = LoadPicture(App.Path + “MAIL16B.ico“) End Sub,例题3-23,手动拖放:利用图片框控件的鼠标拖放操作,模拟垃圾文件处理 分析: 使用DragMode属性和Drag方法来指定开始拖动的方法。一旦开始拖动,可使用DragOver事件过程来处理位于DragDrop事件前面的事,比如设置拖动图标DropIcon,Form_Load: Picture1.Picture = LoadPicture(App.Path + “FOLDER04.ICO“) 图片框1加载图模拟文件夹 Picture2.Picture = LoadPicture(App.Path + “WASTE.ICO“) 图片框2加载图模拟空垃圾箱 Picture1.DragMode = 0 设置图片框1的拖动模式为手动 Picture1_MouseDown: Picture1.Drag 1 鼠标按下,手工启动拖放 Picture1.DragIcon = LoadPicture(App.Path + “DRAG1PG.ICO“) 设置拖动图标模拟废纸 Form_DragOver: Picture1.DragIcon = LoadPicture(App.Path + “DRAG1PG.ICO“) 设置拖动图标 Picture2_DragOver: 改变拖动图标模拟手扔了废纸 Picture1.DragIcon = LoadPicture(App.Path + “DROP1PG.ICO“) Picture2_DragDrop: 图片框2重新加载图片,模拟废纸投送垃圾箱成功 Picture2.Picture = LoadPicture(App.Path + “RECYFULL.ICO“) Picture2_MouseUp: Picture1.Drag 2 鼠标释放,结束拖放,例3-4 编程实现自动拖放,Private Sub Form_Load() Picture1.Picture = LoadPicture(App.Path + “MOON02.ico“) Picture2.Picture = LoadPicture(App.Path + “MOON04.ico“) Picture1.DragIcon = LoadPicture(App.Path + “MOON03.ico“) End Sub Private Sub Picture2_DragDrop(Source As Control, X As Single, _ Y As Single) Picture1.Picture = LoadPicture(App.Path + “MOON04.ico“) Picture2.Picture = LoadPicture(App.Path + “MOON02.ico“) End Sub,DragMode属性为默认值“0-Manual”,例3-5 编程实现手动拖放,DragMode属性为默认值“1-Automatic”,例3-5 编程实现手动拖放,Dim flag1 As Boolean, flag2 As Boolean 两个标志变量分别用来标识两个图像框是否被拖动 Private Sub Form_Load() Image1.Picture = LoadPicture(App.Path + “flagFLGUSA02.ico“) Image2.Picture = LoadPicture(App.Path + “flagFLGUK.ico“) End Sub Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) flag1 = True flag2 = False Image1.Drag 1 Image1.DragIcon = LoadPicture(App.Path + “FlagFLGUSA02.ICO“) End Sub Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single) flag1 = False imageq.Drag 2 手动拖放结束 End Sub,例3-5 编程实现手动拖放,Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) If flag1 = True Then 若拖动的是第1个图像框 Image1.Move X, Y If X = Shape2.Left And X = Shape2.Top And Y = Shape2.Left And X = Shape2.Top And Y = Shape2.Top + _ Shape2.Height Then MsgBox “选错了!“ End If End If End Sub,例3-5 编程实现手动拖放,Private Sub Image2_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) flag2 = True flag1 = False Image2.Drag 1 Image2.DragIcon = LoadPicture(App.Path + “FlagFLGUK.ICO“) End Sub Private Sub Image2_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single) flag2 = False Image2.Drag 2 End Sub,菜 单 设 计,菜单编辑器简介,菜单的各要素及名称,创建菜单,创建菜单的具体步骤: (1)构思好所建菜单的组成结构,打开“菜单编辑器”对话框。 (2)输入每一项的标题、名称。确定是否要加访问键或快捷键,是否要进行其他选项的设定。然后单击“下一个”命令按钮,进行下一项的设置。 (3)对菜单控件的级别和位置进行整体调整。,例3-6,Private Sub MnuSquare_Click() Private Sub MnuCross_Click() Shape1.Shape = 1 正方形 Shape1.FillStyle = 6 正网格线 End Sub End Sub Private Sub MnuCircle_Click() Private Sub MnuDCross_Click() Shape1.Shape = 3 圆 Shape1.FillStyle = 7 斜网格线 End Sub End Sub,弹出式菜单,弹出式菜单的创建方式和下拉式菜单相同,也是通过“菜单编辑器”对话框进行,只不过,在设置时应将菜单标题的“可见”复选框取消。 运行时,在代码编辑器中要调用对象的PopupMenu方法来显示弹出式菜单。 PopupMenu方法的一般格式 对象名. PopupMenu 菜单名,flag ,x ,y ,boldcommand,例3-7,程序代码在原有的基础上再加一个窗体的MouseDown事件过程: Private Sub Form_MouseDown (Button As Integer, _ Shift As Integer, X As Single, Y As Single) If Button = 2 Then Me.PopupMenu MnuChange End Sub,动态菜单,1菜单项的有效和无效 通过Enabled属性的设置来改变菜单项有效性状态 2菜单项的显示和隐藏 修改Visible属性动态地显示和隐藏菜单项,动态菜单,例3-8 Private Sub MnuSquare_Click() Private Sub MnuCircle_Click() Shape1.Shape = 1 Shape1.Shape = 3 MnuFill.Enabled = False MnuFill.Enabled = True End Sub End Sub,例3-9 Private Sub MnuSquare_Click() Private Sub MnuCircle_Click() Shape1.Shape = 1 Shape1.Shape = 3 MnuFill.Visible = False MnuFill.Visible= True End Sub End Sub,MDI应用程序中的菜单,菜单既可以建立在MDI窗体上,也可以建立在子窗体上,或者两边都建立。子窗体上的菜单不显示在子窗体上,而显示在MDI窗体上。若其中一个带菜单的子窗体成为当前活动窗体,则该菜单将取代MDI窗体的菜单,例3-10,下面给出“层叠”和“水平平铺”菜单控件的Click事件过程,其他代码省略。 Private Sub Mnuc_Click() Private Sub Mnuh_Click() MDIForm1.Arrange 0 层叠 MDIForm1.Arrange 1 水平平铺 End Sub End Sub,常用ActiveX控件,1添加/删除ActiveX 控件 (1)单击“工程”菜单选中“部件”命令;或者在工具箱中单击鼠标右键,在弹出的快捷菜单中选中“部件”菜单项(或者使用快捷键Ctrl+T)。弹出的“部件”对话框如图3-17所示。 (2)在“控件”选项卡中列出了所有已安装过的ActiveX控件文件,将需要的ActiveX 控件名左边的复选框选定。 (3)单击“确定”按钮,关闭对话框。,常用ActiveX 控件简介,常用ActiveX 控件简介,通用对话框控件,按照添加ActiveX控件的方法,在控件列表框中选中“Microsoft Common Dialog Control 6.0”,就能将通用对话框控件添加到工具箱中了 1公共属性和方法,通用对话框控件,1公共属性和方法 Action属性和Show方法,例如,在代码编辑器中输入如下语句: Commondialog1.ShowColor 或者Commondialog1.Action=3 运行时,执行完上述语句,系统就会调出“颜色”对话框。,通用对话框控件,2各对话框的特有属性,例3-11 编写一个菜单,综合演示6种标准对话框的功能,Private Sub menuopen_Click() CommonDialog1.InitDir = “c:“ CommonDialog1.DefaultExt = “*.ico“ CommonDialog1.Filter = “*.ico“ CommonDialog1.DialogTitle = “打开图标文件“ CommonDialog1.Action = 1 Picture1.Picture = LoadPicture(CommonDialog1.FileName) End Sub Private Sub menusave_Click() CommonDialog1.Action = 2 需要编程实现真正的保存 End Sub,例3-11 编写一个菜单,综合演示6种标准对话框的功能,Private Sub menuhelp_Click() CommonDialog1.HelpCommand = cdlHelpForceFile CommonDialog1.HelpFile = App.Path & “DEVDTG.HLP“ CommonDialog1.ShowHelp End Sub Private Sub menuprint_Click() CommonDialog1.CancelError = True On Error GoTo errhandler CommonDialog1.Action = 5 Printer.Print Label1.Caption Printer.EndDoc errhandler: Exit Sub End Sub,Private Sub menuclose_Click() End End Sub Private Sub menucolor_Click() CommonDialog1.Action = 3 Label1.ForeColor = CommonDialog1.Color End Sub,例3-11 编写一个菜单,综合演示6种标准对话框的功能,Private Sub menufont_Click() CommonDialog1.CancelError = True On Error GoTo errhandler CommonDialog1.Flags = cdlCFBoth Or cdlceffects CommonDialog1.CancelError = False CommonDialog1.Action = 4 “字体”对话框 If CommonDialog1.FontName “ Then Label1.FontName = CommonDialog1.FontName Else MsgBox “请选择字体名称!“ End If Label1.FontSize = CommonDialog1.FontSize Label1.FontBold = CommonDialog1.FontBold Label1.FontItalic = CommonDialog1.FontItalic Label1.FontStrikethru = CommonDialog1.FontStrikethru errhandler: Exit Sub End Sub,Toolbar控件,Toolbar控件用来创建工具栏的Button对象集合,Toolbar控件的属性页对话框,工具栏中按钮的各种样式,ImageList控件,ImageList控件是储存一系列图像的数据库。 (1)添加工具栏图标,例3-12,Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 If Button.Value = 1 Then Timer1.Enabled = True Else Timer1.Enabled = False : Label1.Caption = “文本显示“ End If Case 3: Label1.Caption = “今天心情好!“ Case 4: Label1.Caption = “今天心情差!“ Case 10: Label1.Caption = “这是一个工具栏实例,“ + vbCrLf + _ “使用了ToolBar控件和ImageList控件“ End Select End Sub,Statusbar控件,该控件通常可以在应用程序的底部创建一个状态栏显示各种状态数据,例3-13,Private Sub Command1_Click() Dim temp As Integer temp = StatusBar1.Panels(3).Style StatusBar1.Panels(3).Style = StatusBar1.Panels(4).Style StatusBar1.Panels(4).Style = temp End Sub,TabStrip控件,该控件可以在应用程序的同一窗口或对话框中定义多个选项卡页面,例3-14,Private Sub Command1_Click() 加法计算 Text3.Text = Val(Text1.Text) + Val(Text2.Text) End Sub Private Sub Command2_Click() 减法计算 Text33.Text = Val(Text11.Text) - Val(Text22.Text) End Sub Private Sub Form_Load() Frame1.Visible = True Frame2.Visible = False End Sub,Private Sub TabStrip1_Click() Select Case TabStrip1.SelectedItem.Index Case 1 Frame1.Visible = True Frame2.Visible = False Case 2 Frame1.Visible = False Frame2.Visible = True End Select End Sub,TreeView控件,TreeView控件以分层的形式显示数据,允许用户随意扩展或折叠节点。 在TreeView控件中经常用到Add函数,可在TreeView控件中产生节点对象,格式如下: 对象名.Nodes.Add(Relative,RelationShip , Key,Text,Image,SelectedImage),例3-15,Private Sub Form_click() Dim tpnode As Node Set tpnode = TreeView1.Nodes.Add(, , “main“, “民族乐器“) Set tpnode = TreeView1.Nodes.Add(“main“, tvwChild, , “笛子“) Set tpnode = TreeView1.Nodes.Add(“main“, tvwChild, , “二胡“) Set tpnode = TreeView1.Nodes.Add(“main“, tvwChild, , “古筝“) tpnode.EnsureVisible End Sub,ListView控件,用ListView显示选中的节点对象的记录集。 在ListView控件中也用到Add函数,可在ListView控件中产生图形列表框,格式如下: 对象名. ListItems.Add(Index,Key ,Text , Icon,SmallIcon),例3-16,Private Sub Form_Load() Dim lit As ListItem Set lit = ListView1.ListItems.Add(, , “上“, 1) Set lit = ListView1.ListItems.Add(, , “右“, 2) Set lit = ListView1.ListItems.Add(, , “下“, 3) Set lit = ListView1.ListItems.Add(, , “左“, 4) End Sub Private Sub Command1_Click() ListView1.Sorted = True End Sub,Progressbar控件,利用该控件创建进度条,显示当前程序运行的进程,例3-17,Private Sub Timer1_Timer() If Val(Text1.Text) = 1 Then Text1.Text = Str(Val(Text1.Text) - 1) ProgressBar1.Value = 10 - Val(Text1.Text) Else End End If End Sub,Slider控件,Slider控件是一个包含滑块和可选择刻度标记的滑杆 例3-18 Private Sub Slider1_Click() Text1.Text = Slider1.Value End Sub,RichTextBox控件,RichTextBox控件和TextBox控件一样可用于文本的输入和编辑,但RichTextBox控件提供了比TextBox控件更高级的格式特性 RichTextBox控件的添加需要选择“Microsoft RichTextBox Control 6.0”部件 1RichTextBox控件的常用属性 2RichTextBox控件的方法,RichTextBox控件,RichTextBox控件,例3-19,Private Sub Command1_Click() RichTextBox1.LoadFile App.Path + “formula.txt“, 1 打开本应用程序所在路径下的formula.txt文本文件 End Sub Private Sub Command2_Click() Dim name As String name = InputBox(“输入新文件名!“, “保存文本文档“) 文件名由用户输入 RichTextBox1.SaveFile App.Path + “ + name + “.rtf“, 0 End Sub,Private Sub Command4_Click() If RichTextBox1.SelText = “ Then MsgBox “先选中文本!“ Else RichTextBox1.SelCharOffset = 100 RichTextBox1.SelFontSize = 8 End If End Sub,例3-19,Private Sub Command3_Click() If RichTextBox1.SelText = “ Then MsgBox “先选中文本!“ Else RichTextBox1.SelCharOffset = -100 RichTextBox1.SelFontSize = 8 End If End Sub,图 形 绘 制,坐标系统 ScaleMode属性值及其说明,自定义坐标系统的方法,1ScaleTop属性/ScaleLeft属性/ScaleWidth属性/ScaleHeight属性 2Scale方法 对象名.Scale (x1,y1)(x2,y2) 格式说明:(x1,y1)表示对象左上角坐标,(x2,y2)表示对象右下角坐标,Visual Basic根据这两组坐标参数计算出ScaleLeft、ScaleTop、ScaleWidth和ScaleHeight 4个属性的值。若参数默认时,则采用默认的坐标系 例如,Form1.Scale(-10,-10)-(20,-10),例3-20,Private Sub Form_Click() Form1.ScaleLeft = -10 Form1.ScaleTop = -10 Form1.ScaleWidth = 30 Form1.ScaleHeight = 20 Line (-10, 0)-(20, 0) Line (0, -10)-(0, 10) CurrentX = 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供水考试题及答案
- 点考试题及答案
- 抗震考试题及答案
- 中外名曲赏析知到智慧树答案
- 中西美食鉴赏知到智慧树答案
- 验光员模拟试题+答案
- 中西医结合临床科研思维与方法知到智慧树答案
- 多重耐药菌感染防控知识培训考核试卷(附答案)
- 第四章血液循环阶梯测试题(附答案)
- 2025年公务员特定项目担保合同规范文本
- 医院数据分级分类制度
- 渤海大学《软件工程》2022-2023学年第一学期期末试卷
- 税务会计岗位招聘笔试题及解答(某大型国企)2024年
- ICD-10疾病编码完整版
- 消防设备设施操作讲解培训讲课文档
- 内分泌科医疗管理制度
- 临床开展十二项细胞因子检测临床意义
- FlowmasterV7中文技术手册
- 房屋承包出租合同
- 石油化学工业的发展历程与前景
- 《滚珠丝杠螺母副》课件
评论
0/150
提交评论