程序设计基础VB讲稿03窗体及常用控.ppt

上传人:max****ui 文档编号:12553553 上传时间:2020-05-11 格式:PPT 页数:241 大小:3.67MB
返回 下载 相关 举报
程序设计基础VB讲稿03窗体及常用控.ppt_第1页
第1页 / 共241页
程序设计基础VB讲稿03窗体及常用控.ppt_第2页
第2页 / 共241页
程序设计基础VB讲稿03窗体及常用控.ppt_第3页
第3页 / 共241页
点击查看更多>>
资源描述
VisualBasic程序设计,主讲:徐竞跃E-mail:271375307,第3章窗体与常用控件,【内容提要】,3.1通用属性3.2窗体3.3基本控件,【重点与难点】,掌握VB标准控件的通用属性;掌握VB窗体的属性、事件、方法;掌握基本控件的属性、事件、方法;深刻理解控件对象的属性、事件、方法的相互关系及使用。,控件对象,控件组成VB应用程序界面的主要部件,VB6.0提供了大量的控件。控件的操作主要包括:控件对象的建立控件的属性设置控件事件过程代码编制,控件对象,控件组成VB应用程序界面的主要部件,VB6.0提供了大量的控件,控件通常分为3种类型。1、标准控件标准控件也称为内部控件。VB启动后,标准控件就以图标的形式出现在工具箱中,既不能添加,也不能删除。2、ActiveX控件这类控件不在工具箱中,而是以“.OCX”文件类型形式存在。需要时,ActiveX控件可以添加到工具箱中,也可以从工具箱中移除。3、可插入对象设计者可将Word文档、Excel工作表、PPt幻灯片等作为一个控件类并以图标形式添加到工具箱中。,控件对象,在VB6.0中将ActiveX控件与可插入对象添加到工具箱的操作。,控件对象,工具箱中每种工具都用一个图形按钮来表示,除了第一个指针工具,其余都是控件类。,控件对象,控件对象,【对象的学习要点】对象的功能;对象的默认对象名;对象的常用属性;对象的默认属性;对象的常用事件;对象的常用方法。,控件对象的命名,每个控件对象都有“Name属性”,其属性值就是控件对象的唯一标识名称,VB系统为每个控件都指定了一个默认的名字。【例如】利用CommandButton工在窗体上创建的第一个命令按钮,默认名为Commandl,第二个命令按钮默认名为Command2。在简单程序中,常常使用对象的默认名字,但实际使用中,为了提高程序的可读性与可维护性,给控件起一个具有代表的名字是非常必要的。,控件对象的命名,【微软公司建议控件的命名规则】前缀+标识其中:“前缀”由微软公司建议,选择控件类中的三个字母组成;“标识”是该控件代表的含义,由用户自行命名。【例如】CmdEnd可表示一个用于结束程序的命令按钮。,控件对象的命名,控件对象的命名,控件对象的命名,【说明】在程序代码中使用的控件名必须与该控件Name属性值一致。若修改了某个控件的名字,序代码中只要涉及该控件的名字,都必须用修改的名字,否则会出现“缺少对象”错误。“前缀”由微软公司建议,可以不选用。最好在设计的界面同时修改控件名,VB系统会自动将事件过程中该控件的默认名换修改后的名字。若在一个控件的事件过程编写完后再修该控件的名字,只能由程序员自己动手修改。,3.1通用属性,在VB中,每一个窗体或控件都有描述其各自特征的属性,不同的控件属性不完全相同。许多控件都有很多相同的属性,这部分属性称为“通用属性”。,1、Name名称属性,【属性功能】在程序代码中用于标识对象,所有对象都有该属性。【属性值修改】只能在属性窗口中修改,而在程序运行时是只读,称为只读属性。【属性值范围】中文词汇、英文词汇、阿拉伯数字和下划线_。【默认属性值】默认的对象名:类名+序号。【例如】Forml、Labell、Label2等。,Name属性,【注意】Name属性在外观界面上不显示出来,在应用程序代码中起个标志识别不同对象的作用。在同一窗体中,所有控件的Name属性是唯一的,不能同名;在同一工程中,窗体也不能同名。【问3-1-1】在不同窗体上,同类控件的Name属性是否能相同?在同一窗体上,控件与窗体的Name属性是否相同?【答3-1-1】可以相同,可以相同。,2、Caption标题属性,【属性功能】在对象的外观表面或标题栏上显示的文本,在外观界面上往往起提示和标志的作用。【属性值修改】在属性窗口和程序代码中下均可修改。【属性值范围】多数文本。【默认属性值】与Name的默认属性值相同。,Caption属性,【热键快捷方式的设置】CommandButton(命令按钮)Label(标签)Frame(框架)OptionButton(单选钮)CheckBox(复选框)的Caption属性中,属性值最后添加“字母”即可将该字母设置为对象的热键快捷方式,该字母将加下划线显示。,Caption属性,【例如】CommandButton(Name属性为Commandl)的Caption属性设置为“帮助”(分号)或“,”(逗号)隔开。【输出格式设定】对于同一对象上的输出格式设定如下:如果列表的各个表达式之间用逗号分隔时,每个表达式结果的输出占14个字符位置,称为分区格式(标准格式,即表达式结果对齐输出);如果用分号分隔时,每个表达式结果的输出之间无空格,称为紧凑格式,即表达式结果不对齐输出。如果表达式结果是数值,在尾部自动加一个空格输出,头部自动加一个符号位(正数为空格)输出。,Print方法,如果列表的最后一个表达式后面有分号,则下一个Print方法的输出不换行,并按紧凑格式输出;如果列表的最后一个表达式后面有逗号,则下一个Print方法的输出不换行,并按分区格式输出。如果列表的最后一个表达式后面没有任何符号,则下一个Print方法换行输出;如果Print后面没有任何的表达式和符号,则下一个Print方法换行输出。,Print方法,Tab(n)指定该函数后面的表达式结果从本行的第n个字符位置开始输出,可以实现定位输出。如果第n个字符位置已有字符存在,则自动换行在下一行的第n个字符位置开始输出。Spc(n)该函数用来输出n个空格。Format(表达式【,格式字符串】)使表达式的结果按“格式字符串”指定的格式输出。,Print方法,【例3.2.5】Print方法举例,PrivateSubForm_Click()Print1;-2,”A”;”B”显示第一行,”BB后无任何符号,光标移到下一行Print“CCC”;Print“DDD”,”CCC”后为分号,”DDD”按紧凑格式输出Print“EEEE”,”FFFFF”“DDD”后为逗号,”EEE”按分区格式输出PrintPrint后无输出项,光标移到下一行,从而产生一个空行Print“GGGG”;Print”GGGG”后为分号,本行的Print语句应按紧凑格式输出,但由于本行的Print方法后无输出项,所以光标移到”GGGG”的下一行,Print方法举例,Print”HHH”PrintTab(4);”微软”从第4个位置开始显示“微软”PrintSpc(6);”程序设计”空6个空格,从第7个位置开始显示“程序设计”,一个汉字占2个字符的位置PrintFormat(20.3456,”+#.#”)显示”+”号,少于#的个数,显示不变,多于#的个数,做四合五入PrintFormat(20.3456,”000.00”)少于0的个数,用0补充,多于0的个数四舍五入PrintFormat(Now,”yyyy/mm/ddhh:mm:ss”)EndSub,Print方法举例,PrivateSubForm_Load()Form1.ShowForm1.AutoRedraw=TruePrint123456789012345678901234567890EndSub,Print方法,【问3-2-6-1】为什么在“FFFFF”与“GGGG”之间有一个空行?为什么在“GGGG”与“HHH”之间无空行?为什么“程序设计“的显示在“软”字一半的位置?(学生自己摸索答案)【注意】Print方法的当前输出位置是由对象的当前坐标属性CurrentX和CurrentY决定的,起始输出位置默为对象的左上角(0,0);Print方法在Form_Load事件过程中无效,因为窗体的AutoRedraw属性默认为False,若在Print方法之前将AutoRedraw属性设置为True,则变成有效。,2、Cls方法,【Cls方法语法格式】Cls【功能】清除对象上用Print方法输出的文本和用绘图方法(在第9章介绍)绘制的图形,同时将当前输出位置坐标移到原点(0,0)位置。【适用对象】Form窗体和Picturebox图片框。,Cls方法,【说明】不能清除对象的Picture属性中的图像。Cls方法使用后,对象的当前坐标属性CurrentX和CurrentY均变为0。清除Picture属性中的图像可用以下语句之一来实现:Picture=LoadPicture(“”)Picture=LoadPicture()Picture=LoadPicturePicture=Nothing,3、Move方法,【Move方法语法格式】MoveLeft,Top,Width,Height【功能】移动窗体或控件。【适用对象】窗体及除计时器Timer和菜单Menu以外的所有控件。【参数】Left和Top参数来指定移动目的位置的坐标,同时也可用Width和Height参数修改对象大小。四个参数中,Left为必要参数,不能少;Top、Width、Height为可选参数,若缺省,系统采用默认值。,【例3.2.6】Move方法示例,在屏幕上移动窗体,程序运行时,每单击窗体一次,窗体向下移动200Twip。(1)移动窗体由于只向下移动,因此只需修改Top参数的值,Forml.Top+200代表向下移动,如果是向上移动,则用Forml.Top200。(2)选择事件驱动过程单击窗体后,窗体才移动,故对象应选择Form,事件应选择Click(),所以事件驱动过程就应选择Form_Click()。(3)界面设计窗体如果处于最大化,则窗体就无法在屏幕上移动,所以将Forml的MaxButton属性设置为False。(4)程序代码,Move方法示例,【注意】如果要改变某一参数,该参数之前的参数不能省略,其后参数则可省略。窗体移动时的坐标原点是屏幕的左上角。属性ScaleWidth、ScaleHeight是窗体的相对宽度和高度,即扣除窗体的边框和标题栏的长度。窗体如果处于最大化,则窗体就无法在屏幕上移动。,PrivateSubForm_Click()单击窗体后,窗体才移动,故选择Form_Click()Form1.MoveForm1.Left,Form1.Top+200或者Form1.Top=Form1.Top+200EndSub,3.3基本控件,【控件】是在图形用户界面上输入信息、输出信息、启动事件过程等交互操作的图形对象。【VB6.0控件分为三类】固有控件也称为标准控件,在工具箱中显示且不可删除;扩展控件(ActiveX)保存在.OCX类型的文件中,使用时先将其放入工具箱,然后和固有控件一样使用;可插入对象控件指可插入其他程序文件等对象。,容器,【容器】是可以容纳其他控件对象的一种对象。容器和容器内的控件组合成一个整体,随容器一起被操作。在标准控件中具有容器功能只有三种对象:窗体(Form)图片框(PictureBox)框架(Frame),3.3.1标签控件,【Label功能】显示文字说明信息或程序运行的结果等。【默认控件名】LabelN,(N=1、2、3)【控件值】Caption,其默认值和Name属性默认值相同。,1、标签的属性,(1)Alignment属性【功能】确定Caption属性中文本的显示对齐方式。【属性值范围】为0表示左对齐(默认值);为l表示右对齐:为2表示居中对齐。,标签的属性,(2)BackStyle属性【功能】设置标签背景和图形是否透明。【属性值范围】为0表示透明,标签后可见;为1表示不透明,标签后不可见(默认值)。,标签的属性,(3)BorderStyle属性【功能】设置有无边框。【属性值】为0表示无边框(默认值);为1表示有单边框。,标签的属性,(4)Autosize属性【功能】是否随Caption的内容自动改变大小,以显示全部内容。【属性值】为True表示自动调节且不换行;为False表示不自动调节(默认值),超出范围的内容不予显示。,标签的属性,(5)Wordwrap属性【功能】是否自动调节垂直方向(自动换行)的高度,以正好显示全部内容。【属性值】为True表示自动调节;为False表示不自动调节(默认值)。【说明】只有当Autosize为True时Wordwrap才有效。标签的Caption属性用来改变Label控件中显示的文本。Caption属性允许文本的长度最多为1024字节。缺省(默认)情况下,当文本超过控件宽度时,文本会自动换行;而当文本超过控件高度时,超出部分将被裁剪掉。,标签的属性,【问3-3-1-1】在Label的Caption属性中输入文本时,一行未输入完能换行吗?【答3-3-1-1】在属性窗口Caption属性中直接输入时,不能,但可以在未输入完的文本行末尾“输入空格”达到换行的效果。用程序代码修改Caption属性时,可以。语法格式“上行字符串”&vbCrlf&“下行字符串”其中,“&”为连接操作符;vbCrlf是Enter键的VB常量,可以用Chr(13)和Chr(10)代替。,2、标签的事件,标签可以响应许多事件,常用Click、DblClick等,用法与窗体的Click、DblClick事件类似。3、标签的方法标签常用Move方法,用法与Form的Move方法相同。,3.3.2文本框控件,【TextBox功能】在程序运行时程序用户可用鼠标、键盘在文本框中“显示”和“接收”文本信息。【默认控件名】TextN,(N=1、2、3),1、文本框的属性,(1)Text属性控件值【功能】存放显示和接收的文本内容。【属性值】任何字符型文本,其默认值和Name属性默认值相同。【注意】在文本框中显示的文本内容存放在Text属性中。当程序运行时程序用户输入的文本内容,也存放在Text属性中。,文本框的属性,(2)MultiLine属性【功能】是否允许接收和显示多行文本。【属性值】为True表示允许多行文本;为False表示只允许单行文本(默认值)。,文本框的属性,(3)PassWordChar属性【功能】设置文本字符的替代显示形式,掩盖真实字符,主要用于密码输入程序中。【属性值】为“空”表示正常显示(默认值);为“一个字符”表示每个文本字符均以该字符代替。【注意】将MultiLine设为False才有效。,文本框的属性,(4)MaxLength属性【功能】可接收和显示的字符个数。【属性值】为n表示个数小于或等于n;为0表示个数无限制(默认值)。(5)Locked属性【功能】是否锁定文本内容。【属性值】为True表示不能修改文本内容;为False表示可以修改文本内容(默认值)。,文本框的属性,(6)ScrollBars属性【功能】是否具有滚动条,只有当MultiLine为True时有效。【属性值】为0表示无滚动条(默认值);为l表示只有水平滚动条;为2表示只有垂直滚动条;为3表示有水平和垂直两种滚动条。【注意】当加入水平滚动条后,文本框内的自动换行功能会自动关闭,只有按Enter键才能回车换行。,文本框的属性,(7)SelStart、SelLength和SelText属性【功能】设置或返回在文本框中选定文本时的“起始位置”、“长度”和“选定内容”。SelStart:设置或返回选定文本的起始位置。第一个字符的位置为0(默认值)。若未选择文本,用于设置或返回插入点前面的字符位置,如果SelStart的值大于整个文本的长度,则取当前文本的长度。SelLength:设置或返回选定文本的字符串长度(字符个数)。若未选择文本,则为0。SelText:设置或返回选定文本的文本内容。,文本框的属性,【说明】在Text中输入多行文本时,通过属性窗口的Text属性直接输入,按Ctrl+Enter键可换行;通过程序代码修改Text属性值时换行使用VB常量vbCrLf。文本框无Caption属性。,2、文本框的事件,文本框除了能响应事件Click、DblClick外,还可响应其他事件。(1)Change事件当Text属性发生变化时,触发Change事件。(2)KeyPress事件当输入一个Ascii字符时,触发KeyPress事件。(3)GetFocus事件当对象获得焦点时,触发GetFocus事件。)(4)LostFocus事件当对象失去焦点时,触发LostFocu事件。,【例3.3.1】文本框输入举例,从文本框Textl中输入半径的值,单击窗体,计算圆的周长、圆的面积、球体的体积,并显示在标签框中;如单击文本框Textl,输入另外的半径值,则先清除原来的信息,再输入。(要求计算球体的体积要保留两位小数,第三位四舍五入)。,文本框输入举例,(1)计算处理:文本框的Text属性为字符型,用Val(Textl)将数字型字符串转换为数字。“&”运算符为字符串连接符。Int(v+0.5)/100可实现保留两位小数,第三位四舍五入。,PrivateSubForm_Click()r=Val(Text1)输入半径pi=3.14圆周率c=2*pi*r计算圆的周长Label1.Caption=c显示圆的周长S=pi*r2:计算圆的面积Label2.Caption=s显示圆的面积v=4/3*pi*r3计算球体体积vc=Int(v+0.5)/100保留两位小数,第三位四舍五入Label3.Caption=vc显示球体体积EndSub,文本框输入举例,(2)清除处理:单击Textl清除,所以选择Textl_Click()事件。给Textl的Text属性及标签的Caption赋空串(),实现清除。,PrivateSubText1_Click()Text1=”清除输入半径的文本框Label1=”清除显示周长的标签Label2=”清除显示面积的标签Label3=”清除显示体积的标签EndSub,【例3.3.2】文本框中选定文本举例,在文本框Textl中用鼠标选择一段文字,选择之后,便立即在Text2中输出。同时在Text3中显示起始位置,在Text4中显示选择字符的长度。(1)分析:在文本框中执行任何鼠标操作,当鼠标按键释放时,都会产生Click事件。用户在文本框Textl中按下鼠标的位置,将决定Textl的SelStart属性值,而拖动鼠标的距离,则决定SelLength属性值,进而把被选择的文字保存在它的SelText属性中。用Text3显示位置,用Text4显示选择字符的长度。,选定文本举例,在窗体上创建四个文本框控件,保留它们的默认名称分别为Textl、Text2、Text3和Text4,并设置Textl和Text2的MultiLine属性为True,使之能够接收多行文本。Textl的Text属性值在设计阶段预先赋值。为了使操作界面更便于用户理解,在四个文本框的上方各添加了一个标签,分别设置它们的Caption属性为“原文:“、“选择文本:”、“选择文本的起始位置:”和“选择文本的起始的长度:”。,选定文本举例,PrivateSubText1_Click()P=Text1.Selstart鼠标操作决定SelStart和SelLength,进而决定SelTextL=Textl.SelLengthText2.Text=Textl.SelText在Text2中显示被选定的文本Text3.text=P在Text3中显示被选定的文本起始位置Text4.text=L在Text2中显示被选定文本的长度EndSub,选定文本举例,3、文本框的方法,文本框能使用的方法不多,其中常用的是SetFocus。SetFocus方法的作用是把焦点移到指定的对象上,使之获得焦点,它适用于大部分可见控件,,3.3.3控件的焦点Focus,【焦点Focus】是控件响应程序用户用鼠标或键盘输入等操作的能力。当控件具有焦点时,才能可接收程序用户的操作。在应用程序交互界面上,焦点代表一种立即接受程序用户操作的能力,获得了焦点的对象能够立即接受操作,失去了焦点的对象不能立即接受操作。在应用程序运行的同一时刻,一个窗体上只能有一个对象获得焦点,一个应用程序中只能有一个窗体获得焦点,操作系统下只能有一个应用程序获得焦点。,焦点Focus,焦点Focus,【说明】许多对象都能够获得焦点,但Label、Frame、Timer、Image、Line和Shape等控件不能获得焦点。只有Enabled和Visible属性为True时,对象才可能获得焦点。在一个窗体中,同一时刻只能有一个控件具有焦点。一个控件获得焦点,则另一个控件就必然失去焦点。窗体只有在没有可以获得焦点的控件时,才能获得焦点。,焦点Focus,【获取焦点的常用方法】控件在程序运行时,用鼠标单击选中控件;按Tab键,焦点在控件之间循环转移;按快捷键选中控件;在程序代码中用控件的SetFocus方法。,1、焦点的事件和方法,(1)GotFocus事件当控件获得焦点时,触发GotFocus事件。【注意】GotFocus事件没有参数,常用于当控件获得焦点时进行的相关处理。,PrivateSub对象名_GotFocus()EndSub,焦点的事件,(2)LostFocus事件当控件失去焦点时,触发LostFocus事件。【注意】LostFocus事件没有参数,可用于在控件失去焦点时进行处理。,PrivateSub对象名_LostFocus()EndSub,焦点的方法,(3)SetFocus方法【功能】使得某个控件获得焦点。【语法格式】SetFocus,2、控件的Tab顺序,【Tab顺序】指按下键盘Tab键时焦点在控件循环转移的顺序。Tab顺序一般由创建控件的先后顺序决定。如果要改变控件之间的Tab顺序,就修改控件的TabIndex和TabStop属性。(1)TabIndex属性【功能】设置或返回容器中控件的Tab顺序序号。【属性值】0、1、2、。,Tab顺序,【问3-3-3-1】窗体上有两个文本框控件Text1和Text2,其TabIndex属性值分别为0和1。先删除Text1,然后再新创建一个TextBox控件,这个新控件的控件名(Name属性值)和TabIndex属性值分别是什么?【答3-3-3-1】新控件的控件名为Text1,其TabIndex属性值为1,而Text2的TabIndex属性值变为0。【修改属性值】即可以在属性窗口中修改,也可以在程序代码中修改。将一个控件的TabIndex属性值修改成N后,其他能够获得焦点的控件将自动按照创建的先后次序重新修改TabIndex属性。,Tab顺序,(2)TabStop属性【功能】设置按下键盘Tab键时,控件的Tab顺序序号是否有效。【属性值】为True时控件的Tab顺序序号有效(默认值),为False时无效。,【例3.3.3】焦点设置举例,在两个文本框Textl和Text2中,输入数据,单击显示结果的标签Labell,就会进行运算并显示。(1)要求:当改变任意一个文本框的内容时,就清除运算结果,再次单击显示结果的标签框,才会进行运算并显示;当在某一个文本框输入数据时,如果按回车键,输入光标就自动移到另一个文本框中。,焦点举例,(2)计算:单击显示结果的标签Labell后,计算并显示结果,所以选择事件过程为Labell_Click();由于Text属性是文本框的控件值,故可将Text属性省略,Val()函数将字符转换为数值。,PrivateSubLabel1_Click()单击标签Label1,触发该事件Label1=Val(Text1)+Val(Text2)计算并显示结果EndSub,焦点举例,(3)清除运算结果:当改变任意一个文本框的内容时,就清除运算结果,所以选择事件过程为Textl_Change()和Text2_Change();清除Labell中的信息,是将Labell的Caption属性设置为空;又由于Caption属性是标签的控件值,故可将Caption省略。,PrivateSubText1_Change()Text1中输入的数据发生改变,触发该事件Label1=清除计算结果EndSub,PrivateSubText2_Change()Text2中输入的数据发生改变,触发该事件Label2=清除计算结果EndSub,焦点举例,(4)设置焦点:当在某一个文本框输入数据时,如果按回车键,输入光标就自动移到另一个文本框中,故选择Textl_KeyPress和Text2_KeyPress事件;用其中的KeyAscii参数的值来判断是否按回车键;用SetFocus方法来设置焦点。,PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then判断是否按了回车键Text2.SetFocus将另一个文本框设为焦点EndIfEndSub,焦点举例,PrivateSubText2_KeyPress(KeyAsciiAsInteger)IfChr(KeyAscii)=Chr(13)Then判断是否按了回车键Text1.SetFocus将另一个文本框设为焦点EndIfEndSub,3.3.4命令按钮控件,【CommandButton功能】程序用户选择应用程序的一个功能选项。【默认控件名】CommandN,(N=1、2、3)【控件值】Value,其默认值为False。标志按钮是否被按下,True表示按下。,命令按钮控件,PrivateSubForm_Load()PrintCommand1.ValueEndSub,PrivateSubForm_Activate()PrintCommand1.ValueEndSub,PrivateSubCommand1_Click()PrintCommand1.ValueEndSub,1、命令按钮属性,(1)Style属性【功能】设置按钮表面外观是标准文本样式,还是图形样式。【属性值】为0表示标准文本样式(默认值),只能显示文本;为l表示图形样式,文本和图形均可显示。(2)Picture属性【功能】设置在命令按钮表面显示的图形。当Style为1时有效。(3)DownPicture属性【功能】当按下鼠标键时,按钮表面显示的图形。当Style为1时有效。,命令按钮属性,(4)DisabledPicture属性【功能】当命令按钮暂时不起作用时,按钮表面显示的图形。当Style为1和Enabled为False时有效。【问】命令按钮对象的Picture属性、DownPicture属性、DisabledPicture属性的属性值?【答】.BMP、.JPG、.GIF等多种格式的图形文件。(5)ToolTipText属性【功能】设置命令按钮工具栏提示文本,通常要和Picture一起使用。【属性值】任何简短语言文本。,命令按钮属性,(6)Cancel属性【功能】设置为“ESC取消功能”默认按钮。在一个窗体上只要程序用户按下“ESC键”,相当于选择单击该命令按钮触发了Click事件。【属性值】为True时设置为ESC键默认按钮,为False时取消默认。【注意】在一个窗体中只能有一个命令按钮的Cancel属性设置为True。,命令按钮属性,(7)Defualt属性【功能】设置为“Enter确定功能”默认按钮。在一个窗体上只要程序用户按下“Enter键”,相当于选择单击该命令按钮触发了Click事件。【属性值】为True时设置为“Enter键”默认按钮,为False时取消默认。【注意】在一个窗体中只能有一个命令按钮的Default设置为True。,命令按钮属性,【命令按钮的热键设置】在Caption属性值的最后输入“&+字母”,该字母即为命令按钮的快捷热键,当程序用户按下Alt+C的时候,相当于选择单击该命令按钮。【例如】Caption属性被设置为“清除(&C)”,则命令按钮表面显示为“清除(C)”。,2、命令按钮事件,命令按钮最主要的事件是Click事件,常用的事件还有MouseDown、MouseUp、MouseMove事件。【可触发命令按钮Click事件的操作】用鼠标单击命令按钮。按Tab键或调用SetFoucs方法,将焦点移到命令按钮上,然后按Enter键。按Alt+带有下划线的字母热键。当命令按钮的Default属性为True时,按Enter键。当命令按钮的Cancel属性为True时,按Esc键。【注意】命令按钮没有DblClick事件。,【例3.3.4】标签、文本框和命令按钮举例,在文本框Textl和Text2中,分别输入用户名和密码,选择“登录”按钮,判断用户名和密码正确性,并显示相应的登录信息。若正确,在标签Label3显示正确的登录信息;否则显示不正确信息,并自动选定用户名文本框的内容;重新输入用户名,将自动清除密码框和登录信息显示框中的内容。(1)要求:输入用户名和密码以回车键结束,同时将焦点向下移动。,登录操作举例,登录操作举例,(2)分析:启动程序后,将光标移到用户名输入框,选择由VB系统自动触发的Form_Activate。选择“登录”按钮,判断用户名和密码正确性,选择Commandl_Click()事件。输入用户名和密码以回车键结束,同时将焦点向下移动,选择Textl_KeyPress和Text2_KeyPress,在其中通过KeyAscii参数来判断是否输入回车键。重新输入用户名,将自动清除密码框和登录信息显示框中的内容,利用文本框的Change事件来触发,选择Textl_Change()。,登录操作举例,PrivateSubForm_Activate()Text1.SetFocus启动程序后,将光标移到用户名输入框Text2.PasswordChar=设置密码框的显示方式EndSub,PrivateSubCommand1_Click()IfText1=MicrosoftAndText2=24681357Then判断输入的正确性Label3=欢迎&Text1&登录!用户名和密码正确,显示相应信息,登录操作举例,ElseLabel3=用户名或密码错!请重新输入用户名或密码错,显示相应信息Text1.SetFocus移到焦点用户名输入框,为重新输入做准备下两行完成文本框内容的选定,为重新输入做准备Text1.SelStart=0Text1.SelLength=Len(Text1)Len()函数可获得文本框中输入内容的长度Text2=清除密码框中的内容EndIfEndSub,登录操作举例,PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then判断是否输入回车键(它的Ascii码为13)Text2.SetFocus移动焦点到密码框下两行完成文本框内容的选定,为输入做准备Text2.SelStart=0Text2.SelLength=Len(Text2)EndIfEndSub,登录操作举例,PrivateSubText2_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenCommand1.SetFocus密码框中输入回车键后,移动焦点到登录按钮EndSub,PrivateSubText1_Change()Label3=清除信息显示框中的内容EndSub,3.3.5单选按钮与复选框,这两类控件单个使用通常是没有意义的,实际应用中总是成组出现。【默认控件名】复选框为CheckN,单选按钮为OptionN,(N=1、2、3),单选按钮与复选框,【功能】程序用户通过这两类控件的选择应用程序的运行参数复选框CheckBox用于从一组选项中选择所需的多个选项,选择某一选项后,该控件将显示;清除此选项后,消失。单选按钮OptionButton提供一组彼此相互排斥的选项,任何时刻用户只能从中选择一个选项,被选中项目左侧圆圈中会出现一黑点。,1、复选框和单选按钮属性,(1)Value属性控件值【功能】设置或返回CheckBox和OptionButton两种控件被选中的状态。【复选框属性值】为0时表示未被选中(默认值);为1表示被选中;为2表示禁止程序用户选择,复选框变为灰色。【单选按钮属性值】为True表示被选中;为False表示未被选中(默认值)。【复选框Value属性变为1】即如何选中一个复选框:单击复选框;在程序代码中将Value属性设置为1。,属性,【单选按钮Value属性变为True】即如何选中一个单选按钮:单击单选按钮;当单选按钮获得焦点时,Value属性自动被修改为True;在程序代码中将Value属性修改为True。,属性,【注意】单选按钮的焦点在同一容器内,单选按钮之间相互排斥,当一个单选按钮的Value变为True时,其他单选按钮自动变为False;当一个复选框获得焦点时,其Value属性不一定为1,同理Value属性为1时,复选框不一定具有焦点。,属性,(2)Style属性【功能】设置控件的外观是标准的文本样式,还是图形样式。用法与命令按钮类似。【属性值】为1时控件的Picture、DownPicture和DisabledPicture属性有效,这样就能像命令按钮一样,用图形代表不同的显示状态;为0时外观为标准文本样式(默认值)。,2、复选框和单选按钮事件,单选按钮和复选框的最常用事件是Click事件。【单选按钮Click事件】每次Click事件的发生总是伴随着Value属性值从False变为True,同时同一容器内的其他单选按钮Value属性值自动修改为False。【复选框Click事件】每次Click事件的发生总是伴随着Value属性值从0变到l(或从l变到0),因而可以在Click事件过程中根据选定与否进行相应的处理。但是,复选框不接受DblClick事件,对它的双击操作通常被认为是两次Click事件。,【例3.3.5】单选按钮应用示例,用户在“运算数1”和“运算数2”所对应的文本框中输入运算数,然后单击运算符的单选按钮,就能在“运算结果”所对应的文本框中输出运算结果。(1)除运算:在进行除运算时,“操作数2”不能为0,若为0,显示出错信息。由于是单击运算符的单选按钮后,计算结果,所以选择单选按钮的Click事件。(2)程序代码:,单选按钮应用示例,PrivateSubOption1_Click()加运算A=Val(Text1.Text):B=Val(Text2.Text)Text3.Text=A+BEndSub,PrivateSubOption2_Click()减运算A=Val(Text1.Text):B=Val(Text2.Text)Text3.Text=A-BEndSub,PrivateSubOption3_Click()乘运算A=Val(Text1.Text):B=Val(Text2.Text)Text3.Text=A*BEndSub,单选按钮应用示例,PrivateSubOption4_Click()除运算A=Val(Text1.Text)B=Val(Text2.Text)IfB0Then判断“操作数2”是否为0Text3.Text=A/BElseText3.Text=输入操作数错EndIfEndSub,3.3.6框架控件,【Frame功能】一种用于将窗体上的对象进行分组的容器。【默认控件名】FrameN,(N=1、2、3),当需要在同一窗体内建立几组相互独立的单选钮时,就需要用框架将每一组单选钮框框起来,使得同一框架内的单选按钮成为一组,每一组单选按钮的操作均不会影响到其他组的单选按钮的选择。,框架,【注意】将一个控件放入框架必须先创建一个框架,然后在框架上创建对象。不能在窗体上创建对象,再移入框架。框架作为一种容器,有自己独立的坐标系统,默认坐标和窗体相似,原点在左上角,横坐标向右,纵坐标向下。放入框架内的对象使用框架的坐标系统。,1、框架的属性,【说明】作为容器,框架及框架中的对象是一个整体,都一起被操作。当Enabled属性值为False时,框架及框架中的所有控件在程序运行时均处于不可用状态。当Visible属性值为False时,框架及框架中的所有控件在程序运行时均处于不可见状态。2、框架的事件框架的事件不常用,它拥有Click、DblClick等事件。,【例3.3.6】框架、复选框和单选按钮举例,程序运行后,分别单击字体、字型,就会使标签中的文字按规定的效果显示。,(1)分析:先创建“字体”、“字型”两个框架,再将单选按钮和复选框分别添加到对应均框架中。(2)程序代码:,举例,PrivateSubOption1_Click()单击“宋体”单选按钮,触发该事件Label1.FontName=宋体设置标签Label1的字体为:宋体EndSub,PrivateSubOption2_Click()单击“黑体”单选按钮,触发该事件Label1.FontName=黑体设置标签Label1的字体为:黑体EndSub,举例,PrivateSubOption3_Click()单击“楷体”单选按钮,触发该事件Label1.FontName=楷体_GB2312设置标签Label1的字体为:楷体EndSub,PrivateSubCheck1_Click()单击“粗体”复选框,触发该事件IfCheck1.Value=1ThenLabel1.FontBold=TrueElseLabel1.FontBold=FalseEndIfEndSub,举例,PrivateSubCheck2_Click()单击“斜体”复选框,触发该事件IfCheck2.Value=1ThenLabel1.FontItalic=TrueElseLabel1.FontItalic=FalseEndIfEndSub,举例,PrivateSubCheck3_Click()单击“下划线”复选框,触发该事件IfCheck3.Value=1ThenLabel1.FontUnderline=TrueElseLabel1.FontUnderline=FalseEndIfEndSub,3.3.7图片框与图像框控件,【PictureBox和Image功能】装载并显示图形图像。【默认控件名】图片框PictureN,图像框ImageN(N=1、2、3),1、图片框和图像框的属性,(1)Picture属性控件值【功能】设置在控件内显示的图像。【属性值】支持位图文件.BMP、图标文件.ICO、JPEG文件、GIF文件等图形文件,默认值为“空”。(2)AutoSize属性【功能】决定PictureBox是否自动调整大小以适应图片(图片不变),Image无此属性。【属性值】为True时允许图片框的大小自动调整;为False(默认值)时图片从PictureBox的左上角开始显示,超出部分不显示。,属性,(3)Stretch属性【功能】决定图片是否自动调整大小以适应Image(图像框不变,可能会导致图片变形),PictureBox无此属性。【属性值】为True时则允许图片的大小自动调整;为False(默认值)时图片从Image的左上角开始显示,超出部分不显示。,属性,【图像框与图片框的区别说明】图片框可以作为容器,图像框则不可以。图片框可用Print方法和绘画语句,图像框则不可以。图像框比图片框占用的内存少,显示速度快。图像框具有Stretch属性,若为True则保持图像框自身尺寸不变,通过挤压或拉伸载入的图片,使图片装满图像框,用此属性可以实现图像的放大和缩小。图片框具有AutoSize属性,若为True则是通过改变图片框自身的尺寸来适应载入的图片,不能实现图像的放大和缩小。,【例3.3.7】图片框应用举例,单击“装入图形(L)”按钮,则将一图形调入图片框中;单击“交换图片(E)”按钮,则两图片进行交换;单击“结束(Q)”按钮,则关闭窗体,结束程序的运行。,图片框举例,(1)图片交换:要实现交换两个图片框中的图片操作,必须要借助于第三个图片框作为暂存单元,所以添加3个图片框控件。Picturel、Picture2用来显示要交换的图片,Picture3作为交换图片时的暂存单元,并将其Visible属性设置为False,使之运行时不可见。由于图片框的Picture属性为默认属性,所以可省略。(2)程序代码:,PrivateSubCommand1_Click()装入图形Picture1=LoadPicture(d:z337a.gif)Picture2=LoadPicture(d:z337b.gif)EndSub,图片框举例,PrivateSubCommand2_Click()交换图形Picture3=Picture1Picture1=Picture2Picture2=Picture3EndSub,PrivateSubCommand3_Click()结束EndEndSub,2、图片框和图像框的事件,PictureBox控件的常用事件主要有Paint、Resize、Change、Click、DblClick、鼠标事件和键盘事件等。Image控件的常用事件与图片框相似,但图像框没有Change和键盘事件。,3、图片框的方法,PictureBox控件的方法与窗体几乎相同,常用方法的有Cls、Move、Print、SetFocus、Refresh和图形方法(见后续章节)等。Image控件的常用方法也与图片框相似。【注意】在图片框中调用这些方法时,不能省略对象名。在图片框中的图片只能用LoadPicture函数清除,不能使用Cls方法。,【例3.3.8】图像框举例,在窗体上4个图像框控件,单击下方的任意一幅小图,就将被单击的图放大到上面的大图中。,图像框举例,(1)分析:在初始化过程Form_Load()中,对四个图像框的Stretch属性设置为True,是不能缺少的,只有Stretch属性设置为True,才能实现图像的放大。用LoadPicture加载图像时,路径和文件名要用完整的绝对路径和完整的文件名,即包括文件的后缀。用语句Image4.Picture=Imagel.Picture可实现放大的原因是Stretch属性设置为True,即图像自动适应图像框控件的大小。(2)程序代码:,图像框举例,PrivateSubForm_Load()以下四句设置图像框的Stretch属性为True,可以实现图像缩放Image1.Stretch=TrueImage2.Stretch=TrueImage3.Stretch=TrueImage4.Stretch=True以下三句加载小图Image1.Picture=LoadPicture(d:z338a.jpg)Image2.Picture=LoadPicture(d:z338b.jpg)Image3.Picture=LoadPicture(d:z338c.jpg)EndSub,PrivateSubCommand1_Click()实现“退出”功能EndEndSub,图像框举例,PrivateSubImage1_Click()Image4.Picture=Image1.Picture将小图放入大图中EndSub,PrivateSubImage2_Click()Image4.Picture=Image2.Picture将小图放入大图中EndSub,PrivateSubImage3_Click()Image4.Picture=Image1.Picture将小图放入大图中EndSub,3.3.8计时器控件,【Timer功能】利用计算机系统的时钟计时,能以一定的时间间隔触发Timer计时事件,在Timer事件过程执行具有时间规律的程序代码。【默认控件名】TimerN(N=1、2、3)【注意】计时器控件在程序运行时是不可见的,所以在设计阶段可放置在窗体的任意位置上。Timer控件有效计时后,Timer计时事件是按时间间隔自动触发,不需要根据程序用户的操作随机触发。,1、计时器的属性,(1)Enabled属性控件值【功能】设置计时器是否有效计时。【属性值】为False时表示不能计时,不会触发Timer计时事件,为True时表示可以计时(默认值)。,计时器的属性,(2)Interval属性【功能】设置Timer计时事件之间的时间间隔,即计时器计时时间,单位为ms。【属性值】为正整数N(不超过65535)时表示计时器计时N(ms),为0时表示不能计时(默认值),与Enabled为False时效果一样不会触发Timer计时事件。【注意】当Enabled属性为True和Interval属性不为0时,Timer控件才能正常计时并触发Timer计时事件。,2、计时器的事件,计时器只有一个Timer计时事件,每经过一个由Interval属性指定的时间间隔就触发一次Timer事件。,【例3.3.9】计时器举例,设计一个秒表程序,单击“开始”按钮,秒表开始计时,单击“停止”按钮,秒表停止计时,单击“归零”按钮,秒表显示为0。,(1)界面设计:窗体中加入一个标签Labell,3个命令按钮Commandl、Command2和Command3,一个计时器Timerl。,计时器举例,(2)分析:将计时器控件Timerl的Interval属性设置为1000,即每隔1秒触发一个计时器的事件,而计时用变量x表示。在Timer事件中,添加x=x+1语句,由此,每隔1秒钟就执行1次,x就在上次值的基础上增加l,从而实现计时。另外,在Form_Load()中,将x赋初值为0;在“归零”事件过程Command3中,也将x赋值为0,在多个事件过程中均用到x,所以在“通用”、“声明”段,声明变量x,使x成为窗体级变量。(3)程序代码:,计时器举例,Dimx声明计时变量为x为窗体级PrivateSubForm_Load()Timer1.Enabled=False设置计时器无效Timer1.Interval=1000设置计时器的时间间隔为1Sx=0计时变量初值为0Label1.Caption=x&秒EndSub,PrivateSubCommand1_Click()Timer1.Enabled=True设置计时器有效EndSub,PrivateSubCommand2_Click()Timer1.Enabled=False设置计时器无效EndSub,计时器举例,PrivateSubCommand3_Click()x=0计时变量初值为0Label1.Caption=x&秒EndSub,PrivateSubTimer1_Timer()每隔1秒钟,触发一次该事件x=x+1计时变量增加1Label1=x&秒显示计时变量x的值EndSub,3.3.9滚动条控件,【滚动条控件功能】实质上,滚动条作为一种输入信息的控件,可以向应用程序或其他控件提供一些运行参数。【默认控件名】水平滚动条HScrollN,垂直滚动条VScrollN,(N=1、2、3),1、滚动条的常用属性,(1)Value属性控件值【功能】设置或返回滚动条中滚动块当前位置的整数值。【属性值】在Max和Min属性值之间取值,包括这两个值。默认值为0。【属性值的修改】在程序运行时,程序用户拖动“滚动块”;程序用户单击滚动条两端的“滚动箭头”;程序用户单击滚动箭头与滚动块之间空白区域;用程序代码给Value属性赋值,同步改变滚动块的位置。,滚动条属性,(2)Max、Min属性【功能】设置滚动条所能表示的整数值范围。【属性值】取值范围为32768+32767。默认值Min为0、Max为32767。当滚动块位于“水平滚动条最右端”
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!