用户界面设计常用控件通用对话框菜单设计多重窗体鼠标和键盘应用程序向导综合应用常用控件一、单选按钮、复选框和框架1、单选按钮(OptionButton)重要属性Caption按钮上显示的文本Value表示单选按钮的状态:True-----被选定False-----未被选定重要事件Click事件单击后使Value属性为True例:单选按钮示例PrivateSubOption1_Click()Label1.Caption=教师EndSubPrivateSubOption2_Click()Label1.Caption=学生EndSubPrivateSubOption3_Click()Label1.Caption=其他EndSubValue属性值为整型,表示复选框的状态:0——vbUnchecked未选定1——vbChecked被选定2——vbGrayed灰色并显示一个选中标记。2、复选框(CheckBox)例:复选框示例PrivateSubCheck1_Click()IfCheck1.Value=1ThenLabel1.Caption=喜欢学习ElseLabel1.Caption=不喜欢学习EndIfEndSubPrivateSubCommand1_Click()Text1.Font.Name=IIf(Option1,宋体,黑体)Text1.Font.Bold=IIf(Check1=1,True,False)Text1.Font.Italic=IIf(Check2=1,True,False)Text1.Font.Strikethrough=IIf(Check3=1,True,False)Text1.Font.Underline=IIf(Check4=1,True,False)EndSub例:通过单选按钮和复选框设置文本框的字体3、框架(Frame)先建立框架,然后将各控件放置其中。Caption属性框架上的标题文本例1:框架用法示例PrivateSubCommand1_Click()EndEndSubPrivateSubList1_Click()Text1.Text=List1.TextEndSub例2:摆出如下效果即可,具体代码实现在下一页。PrivateSubCheck1_Click()Combo1.Enabled=NotCombo1.EnabledText1.Enabled=NotText1.EnabledEndSubPrivateSubCheck2_Click()Option1.Enabled=NotOption1.EnabledOption2.Enabled=NotOption2.EnabledEndSubPrivateSubCombo1_LostFocus()‘当焦点离开组合框时组合框的LostFocus事件被触发,’利用该事件过程将用户输入的计算机品牌添加到组合框中。‘添加到组合框的新项目不能永久保存,下次运行该程序中‘看不到上次保存的项目。flag=FalseFori=0ToCombo1.ListCount-1IfCombo1.List(i)=Combo1.TextThenflag=TrueExitForEndIfNextIfNotflagThenCombo1.AddItemCombo1.TextEndIfEndSubPrivateSubCommand1_Click()IfCheck1.Value=1ThenList1.AddItemCombo1List1.AddItemText1EndIfIfCheck2.Value=1ThenIfOption1ThenList1.AddItemWindows2000ElseList1.AddItemWindows98EndIfEndIfEndSubPrivateSubForm_Load()'Combo1中的选项已在设计状态通过List属性设计Combo1.Enabled=FalseText1.Enabled=FalseOption1.Enabled=FalseOption2.Enabled=FalseEndSub二、滚动条和进度条滚动条(ScrollBar)通常附在窗体上协助观察数据或确定位置,也可作为数据输入工具。进度条(ProgressBar)用来指示事务处理的进度。滚动条有水平和垂直两种;进度条没有水平垂直之分1、滚动条属性Value滑块当前位置的值(缺省为0)Min滑块最小位置值(缺省为0)Max滑块最大位置值SmallChange单击滚动条两端的箭头时,Value属性(滑块位置)改变值LargeChange单击滚动条的空白区域时,Value属性改变值2、滚动条事件Scroll当拖动滑块时触发Changed改变Value属性时触发例1:计算0~18之间某个数阶乘,数据由滚动条获得。PrivateSubHScroll1_Change()DimiAsInteger,sAsDoubles=1n=HScroll1.ValueIfn0ThenFori=1Tons=s*iNextiEndIfLabel2.Caption=n&!=Label3.Caption=sEndSub属性设置:Max----18;Min----0;Value----0;SmallChange----1;LargeChange----3例2:设计一个调色板应用程序,使用三个滚动条作为三种基本颜色的输入工具。属性设置:三个滚动条的max、min、smallchange、largechange和value属性分别设置为255、0、1、25和0DimRed,Green,BlueAsLong‘通用中写PrivateSubCommand1_Click()Text2.BackColor=text1.BackColorEndSubPrivateSubCommand2_Click()Text2.ForeColor=text1.BackColorEndSubPrivateSubHScroll1_Change()Red=HScroll1.ValueGreen=HScroll2.ValueBlue=HScroll3.Valuetext1.BackColor=rgb(red,green,blue)EndSubPrivateSubHScroll2_Change()Red=HScroll1.ValueGreen=HScroll2.ValueBlue=HScroll3.Valuetext1.BackColor=rgb(red,green,blue)EndSubPrivateSubHScroll3_Change()Red=HScroll1.ValueGreen=HScroll2.ValueBlue=HScroll3.Valuetext1.BackColor=rgb(red,green,blue)EndSub3、ProgressBar控件Max和Min设置控件的界限Value控件执行阶段被填充数目,直到等于Max属性值。此控件需加载后才能使用使用方法:工程部件”控件”选项卡microsoftwindowscommoncontrols6.0控件显示的填充数是Value属性与Max和Min属性之间的比值。在对ProgressBar编程时,必须先确定Value属性上限。例:下载文件,可将Max设置为文件长度。在该文件下载过程中,将Value属性设置为文件已经下载的字节数。例:用进度条来指示一个大数组的计算进度。DimCounterAsIntegerDimWorkarea(25000)AsStringProgressBar1.Min=LBound(Workarea)ProgressBar1.Max=UBound(Workarea)ProgressBar1.Visible=TrueProgressBar1.Value=ProgressBar1.Min'设置进度的值为Min'在整个数组中循环ForCounter=LBound(Workarea)ToUBound(Workarea)ProgressBar1.Value=CounterNextCounterProgressBar1.Value=ProgressBar1.MinDimCounterAsIntegerProgressBar1.Min=1ProgressBar1.Max=10000ProgressBar1.Value=1'设置进度的值为Min'在整个数组中循环ForCounter=1To10000ProgressBar1.Value=CounterNextCounterProgressBar1.Value=ProgressBar1.Min三、图形框和图像框1、图形框Picture控件作用:显示图片,也可作为其他控件的容器图形框.Picture=LoadPicture(图形文件名)Autosize属性True图形框自动调整大小与图片匹配False图形超过图形框的部分将被剪裁掉在程序运行时装入图形删除图形框中图形,可用LoadPicture()例如在第2章中的阿凡达示例例1:在picturebox1中显示图形“c:\winnt\soapbubbles.bmp”picture1.picture=“c:\winnt\soapbubbles.bmp”picture1.picture=loadpicture(“c:\winnt\soapbubbles.bmp”)例2:删除picturebox1中的图形picture1.picture=loadpicture(“”)例3:装入另一个图形框中的图形图形框1.pictrue=图形框2.picture错误的正确的2、图像框ImageStretch属性False图像框自动改变大小适应其中的图形True图形根据图像框的大小自动调整尺寸例:设计一个如下所示的图形缩放程序。当拖动滚动条中的滑块时图形随之缩放。图像框与图形框基本相同,例如,都具有picture属性,区别在于两点:图像框不能作为容器存放其他控件图像框没有autosize属性,但是有stretch属性DimH,WAsInteger'H和W分别存放图形的原始大小SubCheck1_Click()Image1.Stretch=Check1.Value'复选框控制Image1的Stretch属性EndSubSubForm_Load()H=Image1.Height'初始时,Image1的高度就是图像的原始高度W=Image1.Width'初始时,Image1的宽度就是图像的原始宽度EndSubSubHScroll1_Scroll()Image1.Height=H*HScroll1.Value/10'Image1按比例缩放高度Image1.Width=W*HScroll1.Value/10'Image1按比例缩放宽度EndSub注:将滚动条的max和min属性设置小一些。如,max设为20;min设为0四、定时器定时器以一定的时间间隔产生Timer事件属性Enabled为False时定时器不产生Timer事件Interval触发Timer事件的时间间隔(ms)事件定时器控件只有一个Timer事件产生Timer事件条件Enabled=True;Interval0例1:设计一个倒计时应用程序注:设计时enabled为false;interval为1000DimtAsIntegerSubCommand1_Click()t=60*Val(Text1.Text)Timer1.Enabled=TrueEndSubSubTimer1_Timer()Dimm,sAsIntegert=t-1m=Int(t/60)s=tMod60Label1.Caption=m&分&s&秒If(t=0)ThenTimer1.Enabled=FalseMsgBox(时间到!)EndIfEndSub例2:制作标签的闪烁字效果SubCommand1_Click()Timer1.Enabled=TrueEndSubSubTime