资源预览内容
第1页 / 共94页
第2页 / 共94页
第3页 / 共94页
第4页 / 共94页
第5页 / 共94页
第6页 / 共94页
第7页 / 共94页
第8页 / 共94页
第9页 / 共94页
第10页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
应用程序界面设计应用程序界面设计第一节第一节 VB模块设计模块设计模块模块: :可以完成一个或若干个功能可以完成一个或若干个功能的程序快,的程序快,称为称为“过程过程”。一、一、VB中过程概述中过程概述1。三种过程。三种过程(1)事事件件过过程程:事事件件响响应应时时执执行行的的过过程程就就是是事事件件过程过程 ,事件过程名为事件过程名为“对象名对象名_事件名事件名” 。(2)通用过程)通用过程 子子过过程程(SUB):不不返返回回值值,可可以以作作为为独独立立的的基基本本语句调用语句调用 函数过程(函数过程(Function)Function):返回一个值。返回一个值。(3)属属性性过过程程:属属性性过过程程可可以以用用来来返返回回和和设设置置属属性的值性的值 .池正吃找里级与校巩措谈瞪赋趾兼挣桓点春毖苟螺赛始军苛忻葛孪误沁高应用程序界面设计应用程序界面设计2创建通用过程创建通用过程(1)使用)使用“添加过程添加过程”对话对话 单击单击“工具工具”菜单中的菜单中的“添加过程添加过程”命令,打开命令,打开“添添加过程加过程”对话框。对话框。(2)在代码编辑窗口中输入)在代码编辑窗口中输入Private|Public Static Sub 子过程名(参数表)子过程名(参数表) 语句块语句块 Exit SubEnd Sub说说明明:VB默默认认的的过过程程是是Public,表表示示在在应应用用程程序序中中随随处处都都可可调调用用它它们们;如如用用Private,则则只只有有该过程所在模块中的程序才能调用。该过程所在模块中的程序才能调用。注意函数过程一般应有:注意函数过程一般应有:函数过程名函数过程名=表达式表达式烫躬致矾汾晰减议班诱尿彤圭间幢光尼雏器棉周啃够打酥男歧锐酞掖蓖薄应用程序界面设计应用程序界面设计3调用子过程调用子过程 (SUB过程)(1)使用)使用Call语句:语句:Call (2)直接使用过程名:)直接使用过程名: 说明:说明:用用Call语句调用时,其过程名后必须加括号。语句调用时,其过程名后必须加括号。若省略若省略Call,则过程名后不能加括号,则过程名后不能加括号例如例如,下面两个语句都能调用,下面两个语句都能调用jiech子过程:子过程: Call Jiech(20) Jiech 20忧哲诗喳促莆衔卸培粤举厨被痕漠兆办纬保煞采赋墟颤擞锦悟技肌让壹曼应用程序界面设计应用程序界面设计4调用函数过程调用函数过程 (Function过程)过程)(1)直接使用过程名:)直接使用过程名: (2)使用)使用Call语句:语句: Call 说明:说明:调用有实参时,其过程名后必须加括号。调用有实参时,其过程名后必须加括号。例如例如 :Jiech(20) Call Jiech(20)子过程不加括号子过程不加括号调用方法:调用方法:Print pri(3)无参函数的调用:)无参函数的调用: 如:如:Function pri pri =”ASDFJKL” End Function谎宅竞艾棒鳃锋签盼丢挫劳谗她三汲围夕码糙迹铺拥疗膛谈坐送刺彩牵膜应用程序界面设计应用程序界面设计5函数过程使用示例函数过程使用示例例1(8-3)设计应用程序,使用设计应用程序,使用两种两种过程计过程计算整数算整数1n中奇数的阶乘的和中奇数的阶乘的和 。(vb81L8-3)Public Function qjc(p) m = 1 For j = 1 To p m = m * j Next j qjc = mEnd FunctionPublic Sub qjc(p, m) m = 1 For j = 1 To p m = m * j Next jEnd Sub主程序:主程序:将文本框内容赋将文本框内容赋n 循环调函数求阶乘和循环调函数求阶乘和输出阶乘值输出阶乘值庶曼哇沸边击觉醇负整悉询锰婴拦胯指硼哗害金舀瞧郧泳蹲鞠粉到霉彤酬应用程序界面设计应用程序界面设计Private Sub Command1_Click() Dim i%, n% Dim s As Long n = Val(Text1.Text) s = 0For i = 1 To n Step 2 s = s + qjc(i)Next i Label3.Caption = sEnd SubPrivate Sub Command1_Click() Dim i%, n% Dim t As Long, s As Longn = Val(Text1.Text)s = 0For i = 1 To n Step 2 Call qjc(i, t) s = s + tNext i Label3.Caption = sEnd Sub魄番昭设劣熄国丘眉旱酣戈靠铸唾被囊油熬鲁望刑焚汞掖旨渭挝溉哇妻鳖应用程序界面设计应用程序界面设计*6.*6.子过程与函数过程区别子过程与函数过程区别(1) 函数过程:有返回值函数过程:有返回值,有类型有类型,在函数体内在函数体内至少赋值一次;至少赋值一次; 子过程无返回值子过程无返回值,无类型,过程体内不能对过无类型,过程体内不能对过程名赋值程名赋值;(2) 调用时,子过程调用是一句独立的语句。调用时,子过程调用是一句独立的语句。 函数过程不能作为单独语句调用,必参与表函数过程不能作为单独语句调用,必参与表达式运算。达式运算。(3)* 一般当过程有一个函数值,使用函数过程一般当过程有一个函数值,使用函数过程较直观;反之较直观;反之,若过程若过程无返回值无返回值或有或有多个返回多个返回值值,使用子过程。,使用子过程。 注意:注意: 子过程的返回值是靠参数的传递实现的子过程的返回值是靠参数的传递实现的滥抗哮拓寺叼混谰讽宪捡派写输盘员竿皇颤属给巢苛麓蛰陇龙苏漾霖唬钡应用程序界面设计应用程序界面设计四、 模块结构 子过程(子过程(Sub)标标准准模模块块(.bas) 类模块(类模块(.cls) 子过程(子过程(Sub) 窗体模块(窗体模块(.frm) 函数过程(函数过程(Function) 事件过程事件过程VB应用程应用程序(序(.vbp)函数过程函数过程(Function)1窗体模块窗体模块 每个窗体对应一个窗体模块,窗体模块包括窗体及其控每个窗体对应一个窗体模块,窗体模块包括窗体及其控件的属性设置、窗体变量的说明、事件过程、通用过程等。件的属性设置、窗体变量的说明、事件过程、通用过程等。 2标准模块标准模块 可可包包含含公公有有或或模模块块级级的的变变量量、常常数数、类类型型,外外部部过过程程和和全全局局过过程程的的全全局局声声明明或或模模块块级级声声明明。默默认认时时,标标准准模模块块中中的的代代码是公有的码是公有的;它保存在它保存在.bas的文件中。的文件中。3类类模模块块 用用户户可可以以在在类类模模块块中中编编写写代代码码建建立立新新对对象象,这这些些新对象可以包含自定义属性和方法,新对象可以包含自定义属性和方法, 难棋铂邪薛戮虹顷畴囱社亩吻嘿秋嫂政诌毙寸快裸兴顾喧砰判风袄州业渠应用程序界面设计应用程序界面设计五、变量与过程的作用域五、变量与过程的作用域1变量的作用域变量的作用域 变量的作用域是指变量的作用范围。变量的作用域是指变量的作用范围。 作用范围 局部变量 窗体/模块级变量 全局变量 声明方式声明方式 Dim,Static Dim,Private Public 声明位置声明位置 过程之中过程之中 窗体窗体/模块通用段模块通用段 窗体窗体/模块通用段模块通用段 能否被本窗体能否被本窗体/模模 块其他过程访问块其他过程访问能否被其他能否被其他 模块访问模块访问蔓深您勾遏滥温碧褪硝膀凸襄全抹炔域腿梯厅抗诱沤贤札扬汞肛姑标疆栓应用程序界面设计应用程序界面设计(1)局部变量:局部变量:在过程内用在过程内用Dim声明的变量,声明的变量,只可本过程用。只可本过程用。(2)窗体窗体/模块级模块级:在窗体:在窗体/模块任何过程外模块任何过程外定义定义,即在即在“通用声明通用声明”段用段用Dim或或Private声明声明,只本窗体或模块中的过程只本窗体或模块中的过程使用。使用。(3)全局级:全局级:在在“通用声明通用声明”段用段用Public语语句声明的变量,可供该应用程序所有过句声明的变量,可供该应用程序所有过程或函数使用程或函数使用。宗沤核嘴者椽赡禹赣脾且汞柒误寓瑚容炯嚣担布猾砖震茹雁倪咸颗沃爽憎应用程序界面设计应用程序界面设计 例如在下面一个窗体或标准模块文件例如在下面一个窗体或标准模块文件中不同级的变量声明:中不同级的变量声明:Public Pa As integerPrivate Mb As string *10 Private Sub F1( ) Dim Fa As integer End Sub Private Sub F2( ) Dim Fb As Single End Sub全局变量全局变量窗体窗体/模块级变量模块级变量局部变量局部变量局部变量局部变量在讲复制、剪切时,为什么将在讲复制、剪切时,为什么将st设为窗体级变量?(见设为窗体级变量?(见P188)斗侗由摔击嘉搜吵怒台彩忌朱唉事扬汗喝皇冻翼寓衙祥胜纸似五枣俯累岿应用程序界面设计应用程序界面设计2。变量的生存期。变量的生存期 根根据据变变量量在在程程序序运运行行期期间间的的生生命命周周期期,变量可分为动态变量和静态变量变量可分为动态变量和静态变量。动态变量(动态变量(Dynamic) 指指程程序序运运行行到到变变量量所所在在的的过过程程时时,才才分分配配该该变变量量的的内内存存单单元元;退退出出该该过过程程后后,该该单单元元自自动动释释放放,其其值值消消失失。使使用用Dim语语句句在在过过程程中中声声明明的的局部变量属于动态变量。局部变量属于动态变量。静态变量(静态变量(Static)指指程程序序运运行行到到该该变变量量所所在在的的过过程程,退退出出该该过过程程,其其值仍被保留。值仍被保留。 使用使用Static语句在过程中声明的局部变量属于语句在过程中声明的局部变量属于静态变量。静态变量。 右蛾素医欣麻忧眯会亭汉鸥喇朔祷邻纸蛙蛛摄赢汞渭讨襄衡除窜蚌坑在队应用程序界面设计应用程序界面设计例例2(8-6)设计一个模拟幸运数字机游戏。设计一个模拟幸运数字机游戏。设幸运数字为设幸运数字为8,每次由计算机随机产生三,每次由计算机随机产生三个个010之间的随机数,当这三个随机数中之间的随机数,当这三个随机数中有一个数字为有一个数字为8时,就算赢了一次。要求利时,就算赢了一次。要求利用全局变量来累计获胜次数用全局变量来累计获胜次数。 (vb81L8-6)Private Sub Form_Load() RandomizeEnd Sub初始化随机数初始化随机数砍摸百被烙纸弓短西旱墩砾阴幽分进灸剃区眩收见送垢附虚毅惋显但剔筹应用程序界面设计应用程序界面设计Public n, wPrivate Sub Command1_Click()Label1.Caption = Int(Rnd * 10) 产生随机数产生随机数Label2.Caption = Int(Rnd * 10) 产生随机数产生随机数Label3.Caption = Int(Rnd * 10) 产生随机数产生随机数 n = n + 1 累计产生随机数的次数累计产生随机数的次数If (Label1.Caption = 8) Or (Label2.Caption = 8) Or (Label3.Caption = 8) Then Beep w = w + 1 使用全局变量使用全局变量,累计获胜的次数累计获胜的次数 Label4.Caption = 共产生了共产生了 & n & 次随机数,次随机数,你赢了你赢了 & Str(w) & 次。次。End IfEnd Sub若若n,w不设为全局变量,不设为全局变量,而是局部变量结果如何而是局部变量结果如何?n与与w始始终为终为1筏镇僚翌扯炮核号瘦遏巫厕审挨箱舰峦无琶杨笼溯冬强肩力么槽缀乖款蹦应用程序界面设计应用程序界面设计局部变量声明:局部变量声明: Dim声明声明: 随过程的调用而分配存贮单元,随过程的调用而分配存贮单元,变量的初始化;过程体结束,变量的内容变量的初始化;过程体结束,变量的内容自动消失,存贮单元释放。自动消失,存贮单元释放。Static声明声明: 每次调用过程,变量保持原来的值。每次调用过程,变量保持原来的值。声明形式:声明形式: Static 变量名变量名 AS 类型类型 Static Function 函数过程名函数过程名(参数列表参数列表) As 类型类型 Static Sub 子过程名子过程名(参数列表参数列表)过程名前加过程名前加Static,表示该过程内的局部变量都是,表示该过程内的局部变量都是静态变量静态变量。程干惯渊孜垢沤琴胺扣坑厄靡迷恭隙利漳堵拧刁桨缎粉第巢归圃剂珍睹阴应用程序界面设计应用程序界面设计例例3 (vb81L2)Private Sub Form_Click() 运行结果:运行结果: Dim i% ,isum% For i = 1 To 5 isum = sum(i) Print isum, Next i End Sub 1 3 6 10 15问:若将问:若将Static j As Integer改改为为 Dim j As Integer ,结果?,结果?1 2 3 4 5Private Function sum(n As Integer) Static j As Integer j = j + n sum = jEnd Function汀炎康赁棠醚羹她襟累渍综滥察理谚比帘僳棍渡抿护浇竖考侄援氨丁递辊应用程序界面设计应用程序界面设计例例4窗体窗体/模块级变量示例。模块级变量示例。Dim x As Integer, y As Integer, z As IntegerPrivate Sub Form_Activate()x = 10: y = 20PrintPrint , x“,y“,z=x+yPrintPrint “调用前值调用前值”, x,y, zPrintCall testPrint “调用后值调用后值”, x,y, zPrintEnd SubPublic Sub test()z = x + yPrint “过程值过程值”, x, y, zPrintEnd Sub程序运行结果程序运行结果 ? x y z=x+y调用前值调用前值 10 20 0过程值过程值 10 20 30调用后值调用后值 10 20 30悍悯绍酮挽苗装拖债赣龟真十仿洒晒庆患恤鸦圭成侍去捎页债盐荤瓜疗妙应用程序界面设计应用程序界面设计例例5窗体窗体/模块级变量示例。模块级变量示例。Private Sub Form_Activate()Dim x As Integer, y As Integer, z As Integerx = 10: y = 20PrintPrint , x“,y“,z=x+yPrintPrint “调用前值调用前值”, x,y, zPrintCall testPrint “调用后值调用后值”, x,y, zPrintEnd SubPublic Sub test()z = x + yPrint “过程值过程值”, x, y, zPrintEnd Sub程序运行结果程序运行结果 ? x y z=x+y调用前值调用前值 10 20 0过程值过程值 0 0 0调用后值调用后值 10 20 0跳居物形薄戌泳爱狗剔黄叭绰锐菏橡栏橡跋蝶姿较咒弛水爆促唇赠燎跟肛应用程序界面设计应用程序界面设计传址传址(双向传递):双向传递): 形参得到的是实参的地址,形参得到的是实参的地址,当形参值的改变同时也改变实参的值。当形参值的改变同时也改变实参的值。 默认传址。默认传址。 传值(单向传递)传值(单向传递): 形参得到的是实参的值,形参得到的是实参的值,形参值的改变不会影响实参的值。形参值的改变不会影响实参的值。 使用使用ByVal表示传值。表示传值。三、三、 参参数传递:数传递: 指主调过程的实参传递给被调过程的形参指主调过程的实参传递给被调过程的形参。Sub Swap1(ByVal x%, ByVal y%)Sub Swap1( x%, y%)Public Sub qjc(p, m)仆姻偶剑涟矫钱廖润濒犀碳疲呆叹硫赐珐凰巳碉徐漓八隘献待股沃窖飞棘应用程序界面设计应用程序界面设计例例6. 两个变量的交换两个变量的交换(vb81L6)Sub Swap1(ByVal x%, ByVal y%) t = x : x = y : y = tEnd SubPrivate Sub Command1_Click() a = 10: b = 20: Swap1 a, b 传值传值Print A1=; a, B1=; b a = 10: b = 20: Swap2 a, b 传地址传地址 Print A2=; a, B2=; bnd SubSub Swap2(x%, y%) t = x : x = y : y = tEnd Sub默认为:默认为:Public运行运行结果:结果:A1=10 B1=20A2=20 B2=10佩秒蒲笺晌抡传棵遍堤猎须幕缎路涎纷皆圃彤舌饰厦宾响帜年慢这患眷浩应用程序界面设计应用程序界面设计2过程的作用域过程的作用域 VB中过程的作用域分为模块级和全局级。中过程的作用域分为模块级和全局级。(1)模块级过程)模块级过程 某个模块内定义的过程,其作用域为本模块。某个模块内定义的过程,其作用域为本模块。 定定义义方方法法:在在Sub或或Function前前加加关关键键字字Private,这这样该过程只能被在本模块中定义的过程调用。样该过程只能被在本模块中定义的过程调用。(2)全局级过程)全局级过程 全全局局级级过过程程可可被被整整个个应应用用程程序序(工工程程)所所有有模模块块中定义的过程调用,其作用域为整个应用程序。中定义的过程调用,其作用域为整个应用程序。 定定义义方方法法是是:在在Sub或或Fuction前前加加关关键键字字Public(可以默认)。(可以默认)。裹捷虐电存熟惨屡弧番哭皖低咋插停虹湖可残凹奥湛号氓档溪纷寡摩龚四应用程序界面设计应用程序界面设计 上机作业:上机作业:1. 编程,通过查找子过程查找数组编程,通过查找子过程查找数组a(10)中任中任意元素的位置,若没找到,给出信息。意元素的位置,若没找到,给出信息。a(10)为为2,5,4,8,12,9,1,25,16,3 2。P57 4章章 实验四的实验题目实验四的实验题目3。 P66 5章章 实验一的四、实验题目实验一的四、实验题目4。上册上册 P231 例例7-7 喀鳞婿釜范囚路扎伤霸隋甸扯禾被晌绕蛋倚搽酒娇朵客拂亲挛嫁赃咆淑馋应用程序界面设计应用程序界面设计复 习(1)局部变量:局部变量:在过程内用在过程内用Dim声明的变量,声明的变量,只可本过程用;在过程内用只可本过程用;在过程内用Static声明的声明的变量为变量为静态静态局部变量。局部变量。(2)窗体窗体/模块级模块级:在窗体:在窗体/模块任何过程外模块任何过程外定义定义,即在即在“通用声明通用声明”段用段用Dim或或Private声明声明,只本窗体或模块中的过程只本窗体或模块中的过程使用。使用。(3)全局级:全局级:在在“通用声明通用声明”段用段用Public语语句声明的变量,可供该应用程序所有过程句声明的变量,可供该应用程序所有过程或函数使用或函数使用。1。变量分几种?如何定义?其作用范围是。变量分几种?如何定义?其作用范围是什么?什么?羽匈黍判玻惮澳毛莲虑辩劈帆搔扩匣奏瑚矛喻锋丧妖熔篮挫惰沫硷涝雇贷应用程序界面设计应用程序界面设计2。在下面一个窗体或标准模块文件中不同在下面一个窗体或标准模块文件中不同级的变量声明:级的变量声明:Public Pa As integerPrivate Mb As string *10 Private Sub F1( ) Dim Fa As integer End Sub Private Sub F2( ) Static Fb As Single End Sub全局变量全局变量窗体窗体/模块级变量模块级变量局部变量局部变量静态局部变量静态局部变量柜稻粗山赣讣赐荡摹僧坐创脯禽塘输舍旋鸭酿身芹诺梆滩狈邀追网逮坐球应用程序界面设计应用程序界面设计8.2 公共对话框公共对话框(CommonDialog)工程工程/部件部件 选定选定 部部件标签件标签选定选定Microsoft CommDialog Control 6.0确定确定1。添加添加公共(通用)对话框公共(通用)对话框到工具箱到工具箱2。打开公共对话框:。打开公共对话框:蚁噬十康碾冒啃漱寸沼忌余陶乎沸肄瑰违曝分蓄庭马叶韩佣饱粕三酞游剥应用程序界面设计应用程序界面设计属性属性(1)Action:打开通用对话框。:打开通用对话框。(2)DialogTiltle:通用对话框标题。(有:通用对话框标题。(有默认,也可自己设默认,也可自己设)。(3)CancelError True:选择:选择“取消取消”按钮,出现错误警告;按钮,出现错误警告; Err.Number置为置为32755(cdCancel)。 False(缺省缺省):选择:选择“取消取消”按钮,没有错按钮,没有错误警告。误警告。责者乌裂颇掏祟铬耍扫容炔犊磷舀死墟帝映逻四枢缉碗物礼淫竞规纳否晌应用程序界面设计应用程序界面设计 属性:属性:FileName:包含路径包含路径 FileTitle:该属性设计时无效:该属性设计时无效, 返回文件名返回文件名(不包含路径不包含路径) Filter:用于过滤文件类型,格式:用于过滤文件类型,格式:文件说明文件说明|文件类型文件类型 例如:例如: Word文档文档 (*.Doc)|*.DOC | 文本文件文本文件(*.TXT) |*.txt |所有文件所有文件|*.* FilterIndex:文件类型列表框中显示第几组类型文件。从文件类型列表框中显示第几组类型文件。从1开始。开始。 InitDir:指定打开对话框的初始目录,默认当前目录。指定打开对话框的初始目录,默认当前目录。 2. “ 2. “打开打开”文件对话框文件对话框DialogTiltleFileName InitDirFilterFilterIndexDefaultExt伺竖素靶汽婪佐舀禽肖薯抿掘凯摔妙桶著狸潮婿剪努杭疑岩辟畜造穷阁醒应用程序界面设计应用程序界面设计例例1(8-9)这是一个使用公共对话框控件的例子这是一个使用公共对话框控件的例子。(vb82l8-9)CommonDialog1.InitDir = c:“CommonDialog1.Filter = all files|*.*|(*.exe)|*.exeCommonDialog1.FilterIndex = 1CommonDialog1.Action = 1Text1.Text = CommonDialog1.FileNameShowOpen用控件数组设用控件数组设置命令按钮置命令按钮米念柱薯戚歌呢几签汗氟檄姜摆饭柱畴利人靳悉制咖究美宫日家夏抿豫燃应用程序界面设计应用程序界面设计Private Sub Command1_Click(Index As Integer)n = IndexSelect Case nCase 0 实现实现打开打开对话框的操作对话框的操作CommonDialog1.Filter = all files|*.*|(*.exe)|*.exeCommonDialog1.FilterIndex = 1CommonDialog1.ShowOpenText1.Text = CommonDialog1.FileNameFrame1.Caption = 从打开对话框返回从打开对话框返回Action = 13. “3. “另存为另存为”对话框对话框 属性属性: 与与“打开打开”对话框类似。对话框类似。 DefaultExt:所存文件的缺省扩展名。所存文件的缺省扩展名。驶输仿僧慰茂酌突外凋别接敏抖痔板拎酮垒惮拴净帛牌沙刀早侯宅菇菲方应用程序界面设计应用程序界面设计4. “4. “颜色颜色”对话框对话框 属性属性Color: 返回或设置选定的颜色。返回或设置选定的颜色。 例例1中中“颜色颜色”按钮的事件过程按钮的事件过程 如:如: CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.ColorCase 1 实现实现另存为另存为对话框的操作对话框的操作CommonDialog1.DefaultExt = txtCommonDialog1.Filter = all files|*.*|文本文件文本文件|*.txt|CommonDialog1.FilterIndex = 2CommonDialog1.ShowSaveText1.Text = CommonDialog1.FileNameFrame1.Caption = 从另存为对话框返回从另存为对话框返回肩途受莹啤儿盲戮介情诫朽栗痘鲤占驭捉蓝威讥述强仅慎涨星盅咋予秘算应用程序界面设计应用程序界面设计Case 2 实现实现颜色颜色对话框的操作对话框的操作CommonDialog1.ShowColorText1.Text = 文本颜色的改变文本颜色的改变Text1.ForeColor = CommonDialog1.ColorFrame1.Caption = 从颜色对话框返回从颜色对话框返回Action = 3豺鄙伯蝇辟梁傣穿聘晌佑眯惩棵近腻钧毅货研憋敬肘浚猪范殖幸恳截我惜应用程序界面设计应用程序界面设计 FontName FontBold,FontItalicFontSize FontStrikethruFontUnderline Color5. “5. “字体字体”对话框对话框5. “5. “字体字体”对话框对话框充园才相拉娄痘排陈酪霞媳悼介聘涡奔蹈隙滓把杨顽京做呐垂浑斟板并疮应用程序界面设计应用程序界面设计Flags属性:属性:指示所显示的字体类型,指示所显示的字体类型,必须设置必须设置。 cdlCFScreenFonts &H1或或1 屏幕字体屏幕字体 cdlCFPrinterFonts &H2或或2 打印机字体打印机字体 cdlCFBoth &H3或或3 打印机字体和屏幕字体。打印机字体和屏幕字体。 cdlCFEffects &H100或或256 显示删除线和下划线显示删除线和下划线 检查框及颜色组合框检查框及颜色组合框“字体字体.”按钮的事件过程按钮的事件过程CommonDialog1.Flags = cdlCFEffects Or cdlCFBoth或或 CommonDialog1.Flags = 259 3 Or 256 CommonDialog1.Action = 4 Text1.FontName = CommonDialog1.FontName Text1.FontSize = CommonDialog1.FontSize窥绑都丘狂墓满僚址县吐筷卓姬父摹苦领屯这具肮韦烬慧晤挂愧品禹孜森应用程序界面设计应用程序界面设计Case 3 CommonDialog1.Flags = 3 Or 256CommonDialog1.ShowFontWith Text1.FontName = CommonDialog1.FontName.FontSize = CommonDialog1.FontSize.FontStrikethru= CommonDialog1.FontStrikethru.FontBold = CommonDialog1.FontBold.FontItalic = CommonDialog1.FontItalic.FontUnderline= CommonDialog1.FontUnderline.ForeColor = CommonDialog1.ColorEnd WithcdlCFEffects Or cdlCFBoth或或 &H3 Or &H100Action = 3拘谊嫩市缉辅经苞翱呜冕悟喝瓜乾恬绑怨吩锣指漠伎嗜锅线庭舌威末堪员应用程序界面设计应用程序界面设计6. “6. “打印打印”对话框对话框属性属性: (1) FromPage:起始页号:起始页号(2)ToPage:终止页号:终止页号(3) Copies:打印份数:打印份数 若打印驱动程序不支持多份打印,有可能始终返回若打印驱动程序不支持多份打印,有可能始终返回 1。Private Sub Comprint_Click()CommonDialog1.ShowPrinter 打开打开“打印打印”对话框对话框For i = 1 To CommonDialog1.Copies Printer.Print Text1.Text 打印文本框中的内容打印文本框中的内容Next i Printer.EndDoc 结束文档打印结束文档打印End Sub棵餐硅咸要雀钝迄晤狠渐袋苟牟蹦混剂矽怀吠独休聊墨磷秸曰蚜酣埂关镣应用程序界面设计应用程序界面设计Private Sub fileopen_Click()CommonDialog1.Filter = 文本文件文本文件|*.txtCommonDialog1.CancelError = TrueCommonDialog1.ShowOpenText1.Text = Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1) Line Input #1, inputdata Text1.Text = Text1.Text + inputdata + vbcrlf Loop Close #1 Exit Sub打开模块(以后讲供参考)打开模块(以后讲供参考)许疹役收呻摸雇篷倘嗡卞鹰们顺植怪涌眼箩轨蚤垣像搓拍豁妖哩泽剿胀撬应用程序界面设计应用程序界面设计保存模块(以后讲供参考)保存模块(以后讲供参考)Private Sub filesave_Click()CommonDialog1.Filter = 文本文件文本文件|*.txtCommonDialog1.CancelError = TrueCommonDialog1.ShowSaveOpen CommonDialog1.FileName For Output As #1 Write #1, Text1.TextClose #1End Sub器出肾坤耳藕嘘很减韶匀亡渔套倦沂短乞纬弟址婶涟含柔丹孝怒烦磅奉伺应用程序界面设计应用程序界面设计8.3 菜单的设计菜单的设计菜单形式菜单形式: 主菜单名主菜单名快捷键快捷键热键热键子菜单标记子菜单标记主菜单条主菜单条分隔线分隔线菜单项子菜单名子菜单名 菜单是指应用程序中为用户提供的一菜单是指应用程序中为用户提供的一组命令,一般出现在界面顶部。组命令,一般出现在界面顶部。畅沉古荧巍冗橡洛仑诌深劝陨苏范廉乒新缠远肖豁矿玖图临摇透馒离叹找应用程序界面设计应用程序界面设计一、菜单编辑器的使用一、菜单编辑器的使用 1。进入菜单编辑器。进入菜单编辑器 “工具工具”菜单菜单“菜单编辑器菜单编辑器”(CTRL+E) 工具栏上的工具栏上的“菜单编辑器菜单编辑器”按钮按钮 菜单列菜单列表框表框菜菜 单单 项项属性属性 操作按钮操作按钮仆逞豹视隋屹旗违忱阳巷徽脑赢莫南寸壶巷卉婶援诞踢赌棠盲湾酚跋秆弊应用程序界面设计应用程序界面设计2。常用属性:。常用属性:1. 标题标题(Caption) 热键:前面加热键:前面加&2. 名称名称(Name)框框, 分隔符也应有名称分隔符也应有名称3. 快捷键快捷键(Shortcut) 菜单名没有快捷键菜单名没有快捷键4. 复选复选(Checked)检查框检查框 TRUE 有有 5. 有效有效(Enabled)检查框检查框6. 可见可见(Visible)检查框检查框3。加入分隔线:。加入分隔线:(1)单击)单击“插入插入”按钮,在按钮,在“标题标题”框中键入一个连字符(减号)框中键入一个连字符(减号)“-”; (2)在)在“名称名称”框中输入分隔线的名称框中输入分隔线的名称。该渺骑焊背忽原烂训脂凯皑耙头徐垃依蚤甚蠢赐郊项夕窜绳碰珐救希尝婪应用程序界面设计应用程序界面设计4。 添加代码添加代码 菜单中各个菜单项是作为一种特殊的菜单中各个菜单项是作为一种特殊的控件,他们只有一个事件,即鼠标单击控件,他们只有一个事件,即鼠标单击事件(事件(Click)事件。每当单击菜单项时,)事件。每当单击菜单项时,系统就调用该菜单项的事件处理过程,系统就调用该菜单项的事件处理过程,执行为这一过程编写的代码。执行为这一过程编写的代码。 给给 “黑体黑体”菜单项添加代码:菜单项添加代码: Private Sub HeiTi_Click() Text1.Fontname= 黑体黑体 End Sub檄藏杠铁摧镑香怀歪床度曲殿蓝穿供豹妮未盐遭吁雍嫁促磺苑陈弄屡瓜遥应用程序界面设计应用程序界面设计例例2(8-10). 建立一个有菜单功能的文本编辑建立一个有菜单功能的文本编辑器器。 (vb82l8-10)Private Sub songti_Click() Text1.fontname = 宋体宋体End SubPrivate Sub kaiti_Click()Text1.fontname = 楷体楷体_GB2312End SubPrivate Sub lishu_Click() Text1.fontname = 隶书隶书End Sub二、下拉式二、下拉式 菜单设计菜单设计丽裔皋姥衍禾裴彬溺葱项讽隘赤问荷疡谬磊绿逢坪周旭藏彝柯棺苔甩歧纹应用程序界面设计应用程序界面设计Private Sub slhz_Click() Text1.fontsize = 16End SubPrivate Sub srhz_Click() Text1.fontsize = 12End SubPrivate Sub cuti_Click() Text1.FontBold = TrueEnd SubPrivate Sub xieti_Click() Text1.FontItalic = TrueEnd Sub筐揉乏脉驾肌瑚涯椒劝脐蔽洒毫掌陨鞍蝇爱漱蝶锋倍检附涂蒂奄檄埠汐嘱应用程序界面设计应用程序界面设计三、设计弹出式菜单快捷菜单三、设计弹出式菜单快捷菜单 弹出式菜单(弹出式菜单(Popup Menu)又称快捷)又称快捷菜单。通过单击右键可激活快捷菜单。菜单。通过单击右键可激活快捷菜单。 快捷菜单也是利用菜单编辑器实现,设快捷菜单也是利用菜单编辑器实现,设计时应计时应将它的将它的“可见可见”复选框设为不选中复选框设为不选中,这样在满足条件后才弹出,菜单变为可见。这样在满足条件后才弹出,菜单变为可见。 弹出快捷菜单的方法是利用弹出快捷菜单的方法是利用Popupmenu方法。方法。 如果一个如果一个File菜单是一个快捷菜单,它菜单是一个快捷菜单,它的的名称为名称为FileMenu,则可在其,则可在其MouseUp(按下按下鼠标)事件鼠标)事件的处理过程添加语句。的处理过程添加语句。汪专变静欺壁冉缕翘弟守既浇襟称发赘爱狗蜗沼涡频滋宿世卓巩亲五肯窗应用程序界面设计应用程序界面设计添加下列语句添加下列语句 Private sub Form_MouseUp(Button As Integer, Shift As Integer, X as single, Y As single) If Button=2 Then PopupMenu FileMenu End If End SubButton=2表示右表示右击,为击,为1表示左击表示左击 程序运行后,如用鼠标右键在该窗口单程序运行后,如用鼠标右键在该窗口单击,则程序处理该事件,调用击,则程序处理该事件,调用PopupMenu,弹出编辑菜单。弹出编辑菜单。立衫痪堵塑汰央熏硷飞婉陛彬妻氓瓷霖痴寝访镁陕色茧蛙勒秽林坐忌托愚应用程序界面设计应用程序界面设计Popupmenu方法的语法如下方法的语法如下: . PopupMenu ,flags,x,y, BoldCommand 必给必给菜单名称菜单名称。 x和和y是窗体上显示菜单的位置。是窗体上显示菜单的位置。 Flags变元定义快捷菜单弹出时的位置和功变元定义快捷菜单弹出时的位置和功能,能, 表表8-10列出列出flags 参数的取值和功能。参数的取值和功能。 指定一个指定一个flags参数,可从每组中选取一个参数,可从每组中选取一个常数,用逻辑常数,用逻辑“或或”组合。组合。 要加粗的子菜单名要加粗的子菜单名藕谭碳泡娠杖膏镑崎振仍电缎勤捐叁笼崖捆采抽蕴微窘帜尹洽饼碟炒跳惑应用程序界面设计应用程序界面设计例例 题题 例例3(8-11)修改例修改例2,将,将“格式格式”作为子弹出菜作为子弹出菜单单使菜单以使菜单以x为中心,且左、右键单击时都为中心,且左、右键单击时都可触发子菜单项。可触发子菜单项。 (vb82L8-11)对文本框操作才对文本框操作才需要加这两句需要加这两句Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.Enabled = False 撤消系统默认弹出菜单撤消系统默认弹出菜单Text1.Enabled = True 使使Text1可用可用If Button = 2 Then PopupMenu gs, 4 Or 2 End IfEnd Sub根椎疫男滔勿蛇爱痘牲愚狼逐柑醉贪盲喉爆两颐憨翰酵狰彩痪滓胖骸力酿应用程序界面设计应用程序界面设计上机作业上机作业: 1。建立一个文本框和如图命令按钮,。建立一个文本框和如图命令按钮,“打开打开”可在文本框显示打开的文件名,可在文本框显示打开的文件名,“颜色颜色”可可设置文本框背景色,设置文本框背景色,“字体字体”可设文本框的字可设文本框的字体、字号、颜色、删除线、下划线体、字号、颜色、删除线、下划线也可建立两个菜单:也可建立两个菜单:文件文件- 打开打开 退出退出格式格式- 颜色颜色 字体字体l2。 P71 四、实验题目四、实验题目l3。 P76 四、实验题目四、实验题目腺矩啦搐蚜匆靠堕溺磨匣影层惶咽异亚嫁需茶校腮杆冻佬拟盼毕统赔愚放应用程序界面设计应用程序界面设计复 习1. 添加一个文件菜单和打开、退出子添加一个文件菜单和打开、退出子菜单中间加分隔线菜单中间加分隔线2,将,将“Edit”作为弹出菜单,在文本框上,作为弹出菜单,在文本框上,单击鼠标右键时可弹出快捷菜单,代码如何单击鼠标右键时可弹出快捷菜单,代码如何写。写。Private Sub Text1_MouseDown()Text1.Enabled = False 撤消系统默认弹出菜单撤消系统默认弹出菜单Text1.Enabled = True 使使Text1可用可用If Button = 2 Then PopupMenu Edit End IfEnd Sub将将Edit的可见属性社为假的可见属性社为假媒它靶甄绥搁戍仲农擦寨好卷攒嘎野训瘤尾孵畦办汉央锅俄秋晾笨瘸蔷趴应用程序界面设计应用程序界面设计8.4 多文档界面多文档界面一、界面样式一、界面样式 WindowsWindows应用程序的用户界面主要有应用程序的用户界面主要有两种:两种:一种是单文档界面一种是单文档界面(SDI(SDI),),另一种是多另一种是多文档界面文档界面(MDI(MDI),也称为多重窗体。,也称为多重窗体。 Windows Windows中的记事本就属于中的记事本就属于SDISDI。 Word Word是一个是一个MDIMDI界面,允许同时打开多界面,允许同时打开多个文档。个文档。 多文档界面是把若干窗体多文档界面是把若干窗体“封装封装”在在一个窗体中,即:用一个窗体来操作其它窗一个窗体中,即:用一个窗体来操作其它窗体。可操作其它窗体的体。可操作其它窗体的称为父窗体称为父窗体,其它被,其它被装入的称为装入的称为子窗体子窗体。应账盲崖辕喜堤穿赚炕弗掐汐宜讫级贯源侥怀挫允备纷敢杆辗达鸣誓杜霄应用程序界面设计应用程序界面设计二、多文档界面中窗体之间的关系二、多文档界面中窗体之间的关系1.1.父窗体与子窗体的关系父窗体与子窗体的关系 在在MDIMDI应用程序中,父窗体只能有应用程序中,父窗体只能有一个,而子窗体则可有多个。父窗体主一个,而子窗体则可有多个。父窗体主要用于显示或排列子窗体。父窗体关闭要用于显示或排列子窗体。父窗体关闭时,子窗体也随之关闭。时,子窗体也随之关闭。 子窗体在父窗体中按三种方式排列:子窗体在父窗体中按三种方式排列:层叠、水平平铺、垂直平铺层叠、水平平铺、垂直平铺。2.2.子窗体与子窗体的关系子窗体与子窗体的关系 子窗体间是相互独立的,但它们可以子窗体间是相互独立的,但它们可以调用共享的模块,也可以交换数据。调用共享的模块,也可以交换数据。 一般是当前活动窗体排在最前面一般是当前活动窗体排在最前面。颜痔捧唾巡菲惮忠占攻向件屁唐迢变剥任讳本馅如蹭寺篆卖舵迭蝴犹妨峪应用程序界面设计应用程序界面设计三、创建三、创建MDIMDI应用程序的方法与步骤应用程序的方法与步骤 1 1、使用、使用“应用程序向导应用程序向导”生成生成MDIMDI(1 1)选择)选择“文件文件”菜单下的菜单下的“新建工程新建工程”命令。命令。(2 2)在)在“新建工程新建工程”的对话框中选择的对话框中选择“VBVB应用程序向导应用程序向导”。(3 3) 进入进入“VB“VB应用程序向导应用程序向导”后,在选后,在选择界面类型时,选择择界面类型时,选择“多文档界面多文档界面(MDIMDI)”。单击。单击“下一步下一步”或或“完成完成”按钮。按钮。短慨奶勾棍喊涸震柯乐庐坪逸估阎瞪提秦皆蜒愿啥蔓蹄饱愁湛隆垣或辊苦应用程序界面设计应用程序界面设计2 2使用使用“菜单和属性窗口菜单和属性窗口”生成生成MDIMDI(1 1)选)选“文件文件”下的下的“新建工程新建工程”,开始,开始一新工程。一新工程。(2 2)选)选“工程工程”上的上的“添加添加MDIMDI窗体窗体”,加一加一MDIMDI窗体。窗体。(3 3)选)选“工程工程”菜单的菜单的“添加窗体添加窗体”,添,添加一窗体。加一窗体。 (4 4)打开属性窗口,把)打开属性窗口,把添加窗体的添加窗体的MDIChildMDIChild的属性设为的属性设为TrueTrue即可。即可。巷抡掷娘孽纱目恤昭魂媒媚肛说糊虎饮淋寞外姆激斯米寂珍蓉肺建侥示朴应用程序界面设计应用程序界面设计3. MDI3. MDI窗体窗体( (父窗体)与子窗体的交互父窗体)与子窗体的交互 * (1)活动子窗体和活动控件活动子窗体和活动控件 MDI窗体的两个属性:窗体的两个属性: ActiveForm 和和ActiveControl 分别表示:分别表示:活动窗体和活动窗体上有焦点的控件活动窗体和活动窗体上有焦点的控件 将子窗体的文本框中所选文本复制到剪贴板上:将子窗体的文本框中所选文本复制到剪贴板上: ClipBoard.SetText frmMDI.ActiveForm. _ ActiveControl.SelText 将剪贴板上文本粘贴到子窗体的文本框中将剪贴板上文本粘贴到子窗体的文本框中: frmMDI.ActiveForm.ActiveControl.SelText= _ ClipBoard.GetText 问问:如何把文本框选中的文本复制:如何把文本框选中的文本复制/ 剪切到剪切板剪切到剪切板?ClipBoard.SetText Text1.SelText, Text1.SelText=溶皆颖块钨焊资铁倡泽闭阑销簧心贝碎昆争谁氨铡进皿九挥棱忙弗硒御制应用程序界面设计应用程序界面设计(2)显示显示MDI窗体及其子窗体窗体及其子窗体 显示窗体的方法为显示窗体的方法为Show,有关规则:有关规则: 1)加载子窗体时,其父窗体会自动加载并显加载子窗体时,其父窗体会自动加载并显示示;反之则无。应把子窗体作为启动窗体。;反之则无。应把子窗体作为启动窗体。 设置启动窗体:设置启动窗体: “工程工程/工程属性工程属性/启动对象启动对象”选启动窗体名选启动窗体名 2)MDI窗体有窗体有AutoShowChildren属性,决属性,决定是否自动显示改变了属性(如:定是否自动显示改变了属性(如:Caption)的的子窗体子窗体.匹堑鞭爱黎因惹竹虑踩承旋宦阳惰害冈梁竞唁经摧眼领橱峦佑讥关这挟总应用程序界面设计应用程序界面设计(3 3)多文档界面应用程序中的)多文档界面应用程序中的“窗口窗口”菜单菜单 1)显示打开的多个文档窗口显示打开的多个文档窗口 要在父窗体某菜单上显示打开的子窗体标题,只需要在父窗体某菜单上显示打开的子窗体标题,只需用菜单编辑器将该菜单的用菜单编辑器将该菜单的WindowList属性设为属性设为True。 2)排列窗口排列窗口 利用利用Arrange方法进行层叠、平铺和排列图标。方法进行层叠、平铺和排列图标。 形式:形式: MDI窗体对象窗体对象.Arrange 排列方式排列方式 排列方式排列方式撵失轴贸橇产堪缔预细婚粪蛊辫江远端担置哑拦佑寐狮粱详戒炬赛阎舒宜应用程序界面设计应用程序界面设计例例1(8-12) MDI1(8-12) MDI窗体的创建与操作窗体的创建与操作 建立一个父窗体,两个子窗体建立一个父窗体,两个子窗体, ,使之能使之能分别层叠、水平平铺和垂直平铺。分别层叠、水平平铺和垂直平铺。(1 1)建名为)建名为MDIForm1MDIForm1的父窗体的父窗体( (启动窗体启动窗体) )(2 2)建立两个子窗体,)建立两个子窗体,CaptionCaption属性分别为属性分别为Form1Form1、FormMDIChild FormMDIChild 。(3 3)将)将FormMDIChildFormMDIChild窗体的窗体的MDIChildMDIChild属性属性设为设为TrueTrue。(4 4)在父窗体中加入菜单,其)在父窗体中加入菜单,其“窗口窗口”菜菜单下分别为层叠、水平平铺和垂直平铺子单下分别为层叠、水平平铺和垂直平铺子菜单。菜单。 (Vb83L8-12)(Vb83L8-12)溜嚣爆嗽钙绚榆敷往讥粳邮撑俐藕袜渴摧其笨榷蛆永引消唁溜尘章逸提傍应用程序界面设计应用程序界面设计(5 5)程序代码:)程序代码: 新建窗体代码新建窗体代码Public Sub FileNewProc() Dim NewDoc As New FormMDIChild Static No As Integer No = No + 1 NewDoc.Caption = “文档 & No NewDoc.Show 显示子窗体 End SubPrivate Sub new_Click()Private Sub new_Click()Private Sub new_Click() FileNewProc FileNewProcEnd SubEnd Sub必为已有必为已有的窗体名的窗体名石墒旁饥育连霹歧派刚粒赫倦舜移洒篙诲巳露薯惺奎巍蝎椿滤密冤虫耀断应用程序界面设计应用程序界面设计排列窗口代码:Private Sub cd_Click()Private Sub cd_Click() 参数参数 0 0代表子窗体间层叠代表子窗体间层叠 MDIForm1.Arrange 0 MDIForm1.Arrange 0End SubEnd SubPrivate Sub sppp_Click()Private Sub sppp_Click() 参数参数 1 1代表子窗体间水平平铺代表子窗体间水平平铺 MDIForm1.Arrange 1 MDIForm1.Arrange 1End SubEnd SubPrivate Sub czpp_Click()Private Sub czpp_Click() 参数参数 2 2代表子窗体间垂直平铺代表子窗体间垂直平铺 MDIForm1.Arrange 2 MDIForm1.Arrange 2End SubEnd Sub狙怎身铂筑咱疙杜搬黎焕妈颠奄姐驹士丑搀君炳继朋扩遭桶膛福伯妄咨瞎应用程序界面设计应用程序界面设计8.5 工具栏工具栏 一、一、 工具栏的常用属性、方法和事件工具栏的常用属性、方法和事件 ToolBar控件是控件是ActiveX控件的一部分。控件的一部分。 ToolBar控件包含一个按钮对象集合,用来控件包含一个按钮对象集合,用来创建工具栏。可在按钮上用创建工具栏。可在按钮上用Image属性为按钮属性为按钮载入一个图标,用载入一个图标,用Caption属性显示标题。属性显示标题。 ToolBar属高级控件,先要将其加到工具箱。属高级控件,先要将其加到工具箱。(一)方法:(一)方法:1.单击单击“工程工程”的的“部件部件”菜单菜单项;项; 2. 再单击再单击“Microsoft Windows Common Controls 6.0”左边的复选框;左边的复选框; 3. 最后单击最后单击“确定确定”。擅拄图籍饺探炳腹规塑壮押处婿的柏袱驯找聚孔鸦缩爪瘴头袭簧培梧们苞应用程序界面设计应用程序界面设计 (二)工具栏控件的常用属性(二)工具栏控件的常用属性 *1. Buttons属性属性 访问工具栏中使用的访问工具栏中使用的Buttons对象的集合。对象的集合。*2. ImageList属性属性 读出和设置与工具栏相关联的读出和设置与工具栏相关联的ImageList控件。该属性被设置后,可以向工具栏按控件。该属性被设置后,可以向工具栏按钮中添加图形。钮中添加图形。3. Index属性属性控件名相同时,用来产生一个数组中的索控件名相同时,用来产生一个数组中的索引用来标识各控件。引用来标识各控件。垃楚钉戒喀浩菊堑茬踪设笑吻使梧饵企艺玄贼叮忆芋颤吃蠕聊睫激圭卡帚应用程序界面设计应用程序界面设计*4. ToolTipText属性属性 设置程序运行时鼠标指在工具栏的某一设置程序运行时鼠标指在工具栏的某一按钮上所显示的提示文本。按钮上所显示的提示文本。5. ShowTips属性属性 设置是否显示工具栏按钮上的提示文本设置是否显示工具栏按钮上的提示文本.*6 . Key属性属性 设置某一按钮与其他按钮相区别的关键字设置某一按钮与其他按钮相区别的关键字7 . Style属性属性 设置按钮的工作样式,有设置按钮的工作样式,有5个值,缺省为个值,缺省为0。约盐摔捆药觅冤扼洁洞采挪频归委抹钞胸弊互翟依渝偷衣楞枣赏洼胀陷烩应用程序界面设计应用程序界面设计*8 . Image属性属性 该属性设置按钮中显示的图形,以该属性设置按钮中显示的图形,以1,2,3.等等ImageList中各图形的索引值中各图形的索引值来标识。来标识。(三)工具栏常用事件有:(三)工具栏常用事件有: (1) ButtonClick事件事件当单击工当单击工具栏上的任一个按钮执行事件过程;具栏上的任一个按钮执行事件过程; (2)Click事件事件当单击工具栏空白当单击工具栏空白处时执行事件过程。处时执行事件过程。乔蔫鹤验楷残拼活拢郧碗防牧哑薯何喊挝庚栈能缄虱栽姜扮腕蛛共壶蜕醋应用程序界面设计应用程序界面设计二、二、 创建工具栏创建工具栏 将将ImageList控件添加到窗体之后,控件添加到窗体之后,ToolBar控件才可使用其中的图标。控件才可使用其中的图标。 每个每个ListImage对象可用集合的索引或对象可用集合的索引或关键字的属性值加以引用。关键字的属性值加以引用。 创建工具栏步骤:创建工具栏步骤: 第一步第一步 : 将将toolbar工具栏和工具栏和ImageList加加入工具箱中;入工具箱中; 第二步第二步 : 分别加入分别加入toolbar工具栏和工具栏和ImageList图象表到窗体中;图象表到窗体中;邑浩马任驰荧闷拭两苍行湍耕海廷譬逆渊有秤醚尸纂碱聂蒙恐瘟洋废谱艇应用程序界面设计应用程序界面设计第三步第三步 : 加入图象到加入图象到ImageList图象列表中图象列表中: 1. 选图象列表的选图象列表的“自定义自定义”属性。属性。 2. 单击单击“属性页”对话框中的“图象图象”选项卡选项卡,然后单击单击“插入图片插入图片”按钮按钮。 C:program filessunvicobmp 3 .选中图形文件后,单击选中图形文件后,单击“打开打开”,将其加到图像框中。可 依次选多个。 4. 单击“关键字”框,为每个图标输入关为每个图标输入关键字键字;关键字应唯一。察孺米螟秆布眼磕噬酿努贴子埂假昨钨膊怪靳勒格奶牡庙熏馋霹尺析轿融应用程序界面设计应用程序界面设计 第四步:设置工具栏属性第四步:设置工具栏属性: 1.用属性窗口的用属性窗口的“自定义自定义”选项,或右击工具栏对选项,或右击工具栏对象,选择象,选择“属性属性”项。项。 2 . 单击单击“通用通用”按钮,按钮, 从从“图象列表图象列表”框中选择框中选择加入的加入的ImageList控件名。控件名。 3.单击单击“按钮按钮”选项卡,点击选项卡,点击“插入按钮插入按钮”, “索索引引”框中数字自动变为框中数字自动变为1, 可设属性(由灰变黑)。可设属性(由灰变黑)。 4 . 单击单击“图象图象”文本框,输入文本框,输入ListImage中图标或中图标或位图的索引值(位图的索引值(1,2,3等)或关键字。等)或关键字。 还可设置按钮标题、标记,工具提示文本等。还可设置按钮标题、标记,工具提示文本等。 5. 单击单击“应用应用”按钮,设置完毕。按钮,设置完毕。 6. 重复重复35,设置多个按钮后单击,设置多个按钮后单击“确定确定”。女姆拼胆持笼择姥玻难务羊搏匙猩洒召寂蘸苫疏毙略狈狗揖蜘裔嫁短凑恨应用程序界面设计应用程序界面设计例题: 建立一个有建立一个有“复制复制”、“剪切剪切”、“粘贴粘贴”按钮的工具栏。按钮的工具栏。 各按钮的索引值和关键字的值为:各按钮的索引值和关键字的值为: 剪切剪切1,key1 复制复制2,key2 粘贴粘贴3,key3 盅本牛请慷选欣酪拆街羌竹蛙郴床东媚批腻檀失真厚尹狠亢光尺票契占瞬应用程序界面设计应用程序界面设计三、三、 为工具栏的各按钮编写处理过程为工具栏的各按钮编写处理过程 运行程序时工具栏出现在窗体上,运行程序时工具栏出现在窗体上,此时单击各按钮,不能完成任何功此时单击各按钮,不能完成任何功能,因没编代码。能,因没编代码。 单击工具栏按钮时,产生单击工具栏按钮时,产生Buttonclick事件。事件。 编写代码时可用按钮的编写代码时可用按钮的Index属属性或性或key属性标识被单击的按钮,因属性标识被单击的按钮,因它们是唯一的。它们是唯一的。插氖纤傲惮匝镜弱汐碧絮屿惑苛鹅耗跨室角缝嗓传现祭沁达旱刊雁鄂策防应用程序界面设计应用程序界面设计编写的代码如下:Dim vbTemp As String 定义vbtemp为全局变量Private Sub Toolbar1_ButtonClick ( ByVal Button As ComctlLib. Button)Select Case Button. Key (或或Button . index)Case cut (或或 1) vbTemp = Text1.Text Text1.Text = Case copy vbTemp = Text1.Text矣第脓泼斩谚祥颁钎蜗松窗狙塑夯忘殃焊玲闲磋预扣咖松肌逾嗜利工亏摧应用程序界面设计应用程序界面设计Case paster Text2.Text = vbTemp.End SelectEnd Sub 注意:注意:每个工具栏中的按钮不是一个每个工具栏中的按钮不是一个独立的控件,它必须通过单击工具栏事独立的控件,它必须通过单击工具栏事件后,判断各按钮的索引值或关键字的件后,判断各按钮的索引值或关键字的值,来确定各自要实现的功能。值,来确定各自要实现的功能。(VB6GJLLT(例题)民轧蔫霍汗亏抹湘第诊宙朝达盐羚床使埔棠霹瞪蛙兼永缎娱坠随翔俞噪列应用程序界面设计应用程序界面设计上机操作题:P264 7,8, 9,10 10题:将自己的作业编到一作业管理系统中。 单击“开始”按钮,调出各章作业选项列表(用列表框做) 单击某一列表选项,显示本章作业列表,选择某项后,运行该作业。 注意:(1)各作业的窗体名称不能相同。如都用form1。 (2) 先编主窗体,包括“开始”按钮和各列表框。 (3)用“工程”- “添加文件”-选作业窗体文件(窗体名称已改),加到工程中。 (4)编写代码。 (5) 用“文件”菜单的“生成xxx.exe”命令,生成可执行文件.冻汗殴辫昌擞兹雅招鉴依概琼往尿甭锥矛萝婿庐獭钱慰晕稳醚薯罪输末撼应用程序界面设计应用程序界面设计上机操作题4. 设计一个菜单,通过菜单命令可以改变窗体的背景颜色、字体颜色、字体的尺寸,并且当窗口的文本框中无字符时,字体颜色和尺寸的设置无效。 7. 创建一个带有图标的工具栏,工具栏中有“新建”、“打开”、“保存”、“剪切”、“复制”、“|粘贴”等按钮。9. 设计一个界面,要求界面中带有菜单和工具栏,并可通过菜单或工具栏完成简单的文本编辑功能。挚歧皱约似落却鲜踩雹蹿姨沁地蜘滥有惫恰静扑泰铲逢扯施卜陈漏毒瓤劫应用程序界面设计应用程序界面设计谦户寸超慷坊理让殃涵甩矮参翰痔蒂救挺辆臼刑范互邯脖误明赣嘲佰明而应用程序界面设计应用程序界面设计复复 习习 简述建立工具栏的基本步骤?简述建立工具栏的基本步骤?工具栏的主要事件为何?通常用哪个工具栏的主要事件为何?通常用哪个语句和按钮的哪个属性写工具栏的代语句和按钮的哪个属性写工具栏的代码码?专勋队姚拆赁雨垒铝逆辆驾泪行靴歉惮雏川仍举贝猩箩恃压胸多尾送吐涪应用程序界面设计应用程序界面设计谦户寸超慷坊理让殃涵甩矮参翰痔蒂救挺辆臼刑范互邯脖误明赣嘲佰明而应用程序界面设计应用程序界面设计复习 通过通过ToolBar、ImageList组合使用建立工组合使用建立工具栏,步骤:具栏,步骤:1.利用利用“Microsoft Windows Common Controls 6.0”将控件添加到工具箱将控件添加到工具箱 2. 在在ImageList控件中添加所需的图象控件中添加所需的图象 3. 在在ToolBar控件中创建控件中创建Button对象。对象。 4. 在在ButtonClick事件中用事件中用Select Case语句对各按钮语句对各按钮进行编程。进行编程。撼盆怂排帖匡华妖脯芽缚劣秩辐慨孝竣遮逾岸咨硼咐窟姐黑聂喧牺泄黑爸应用程序界面设计应用程序界面设计一、一、 键盘事件键盘事件 1。KeyPress事件过程事件过程: 按下并释放一个会产生按下并释放一个会产生Ascii码的码的键时触发键时触发事件语法格式:事件语法格式: Sub object_KeyPress(index As Integer,KeyAscii As Integer) 响应事件的程序代码块响应事件的程序代码块End SubKeyAscii是按键所对应的是按键所对应的Ascii码值码值,如如B-66. 8.6 界面上的用户事件界面上的用户事件 Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then 按下回车键按下回车键 MsgBox 您按下了回车键!您按下了回车键! End IfEnd Sub堵梁抖骋促界县节把青映孟羹姻渔置聋损蝇墨儒明纽栋食规崩塌寅舶静赡应用程序界面设计应用程序界面设计2。KeyDown与与 KeyUp事件过程事件过程:KeyDown:按下任意一键时触发按下任意一键时触发Sub object_KeyDown(index As Integer, keycode As Integer, shift As Integer) 响应事件的程序代码块响应事件的程序代码块End SubEnd Sub 当焦点在某一对象上,按下任意一键时,当焦点在某一对象上,按下任意一键时,会引发该对象的会引发该对象的KeyDown事件事件Sub object_KeyUp(index As Integer, keycode As Integer, shift As Integer) 响应事件的程序代码块响应事件的程序代码块End SubEnd Sub 当焦点在某一对象上,释放任意一键时,当焦点在某一对象上,释放任意一键时,会引发该对象的会引发该对象的KeyDown事件事件牲柬游迢疤帛讨债厌光玫姜绘佐崩褪倡褐吐翰吕驼灰辜镑结狰尤纱暖年亦应用程序界面设计应用程序界面设计 KeyUp事件过程:事件过程:释放任意一键时触发释放任意一键时触发参数说明参数说明: (1)index:该参数是控件数组的下标。:该参数是控件数组的下标。 (2)KeyCode:键盘扫描码:键盘扫描码,告诉事件过程告诉事件过程用户按的物理键(按键的实际码)。该码以用户按的物理键(按键的实际码)。该码以键为准,而不是以字符为准。也就是说,大键为准,而不是以字符为准。也就是说,大写字母与小写字母使用同一个键,它们的写字母与小写字母使用同一个键,它们的KeyCode相同相同 (使用大写字母的(使用大写字母的Ascii码)。码)。(3) Shift(3) Shift参数参数包含了按下包含了按下Shift键、键、Ctrl键、键、Alt键的状态信键的状态信息息;腾藏荒劳捆拱藐需冕宅爪陌柜沼鞋酸忙堰逻踪尿后啼责块暑彦宿歹臼硫山应用程序界面设计应用程序界面设计 按键按键 参数值参数值 Shift 1 Ctrl 2 Alt 4 如果如果Shift的值为的值为4,表示按下了,表示按下了Alt键键 。 注意:注意: Shift的返回值为一个总和结果的返回值为一个总和结果,若同若同时按了时按了Ctrl和和Shift键,则键,则Shift的返回值为的返回值为3; 表示按住表示按住Ctrl健,再单击鼠标左键后执行的代码健,再单击鼠标左键后执行的代码END。问:问:若同时按按了若同时按按了Shif、 Ctrl和和Alt键,则键,则Shift返返回值为多少?回值为多少? Shift值的最大值为多少?值的最大值为多少?均为均为7例如:例如: If Shift = 2 and Button = 1 Then end坑耸寨伙私拳雄卵诈鼎埋焰坎浦荚忿耕冒蔽远骂涤翟椅溜牧特岩所茬清怒应用程序界面设计应用程序界面设计 3。KeyPreview(预检)属性(预检)属性 窗体的窗体的KeyPreview(预检)属性设置为(预检)属性设置为True,才才能使用窗体的能使用窗体的KeyDown、KeyUp、KeyPress事件事件,否否则控件的则控件的窗体的窗体的这这3个事件不起作用,只个事件不起作用,只活动控件的活动控件的这这3个事件起作用。个事件起作用。 按下按下Alt键时,键时,Shift的值为的值为4例例1 编一程序,当按下编一程序,当按下Alt+F5时终止程序的运行。时终止程序的运行。 先把窗体的先把窗体的KeyPreview属性设置为属性设置为True,再编写,再编写如下的程序:如下的程序:Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)If (KeyCode = vbKeyF5) And (Shift = 4) ThenEnd End If End Sub代责导檬拂擒探阮涧刺别折贷篓蜡涉弧辣散蒋涧峨按信椒酪颧彻盎捅星雹应用程序界面设计应用程序界面设计 4.应用应用 限制数据输入限制数据输入 限制文本框只能接收限制文本框只能接收“0”“9”的数字的数字字符。字符。(0的的 KeyAscii为为48)Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 57 Then KeyAscii = 0 为为0 表示不接受任何字符表示不接受任何字符 End IfEnd Sub火戒邮肪厅袋睡弱定尾瞳刀园堵话靳悲陌萤聂鲍熊脂邱暑辨曙槐酞袖侯痹应用程序界面设计应用程序界面设计(1)(1)MouseDownMouseDown事件:按下鼠标时触发事件:按下鼠标时触发Sub Form_MouseDown(Button As Integer, Sub Form_MouseDown(Button As Integer, Shift As Integer,X As Single, Y As Single)Shift As Integer,X As Single, Y As Single)(发生在窗体的事件过程)(发生在窗体的事件过程)(2)(2)MouseUpMouseUp事件:鼠标按钮释放时触发事件:鼠标按钮释放时触发Sub Form_MouseUpSub Form_MouseUp(Button As Integer,Shift As (Button As Integer,Shift As Integer,Integer, X As Single,Y As Single)X As Single,Y As Single) ( (发生在窗体上的事件过程发生在窗体上的事件过程) )(3)(3)MouseMoveMouseMove事件:移动鼠标时触发事件:移动鼠标时触发Sub Form_MouseMoveSub Form_MouseMove(Button As Integer, Shift As (Button As Integer, Shift As Integer,X As Single,Y As Single)Integer,X As Single,Y As Single) ( (发生在窗体上的事件过程发生在窗体上的事件过程) )二、二、 鼠标器事件鼠标器事件注意鼠标事件发生在什么对象上,是窗体还是控件。注意鼠标事件发生在什么对象上,是窗体还是控件。杀找伤唉岂帝枷魂蔷颂蒂淮依陵浑傻哺伴乏复宣鹅剔业校爹抵坤渝式胺详应用程序界面设计应用程序界面设计(1) Button(1) Button参数参数 Button参数指示哪个按钮触发了鼠标事件:参数指示哪个按钮触发了鼠标事件:1vbLeftButton:按下左键触发了鼠标事件;按下左键触发了鼠标事件;2vbRightButton:按下右键触发了鼠标事件;按下右键触发了鼠标事件;4vbMiddleButton:按下中键触发了鼠标事件按下中键触发了鼠标事件 例如:例如:Button为为2,表示按下了右键;表示按下了右键;如果按了左键如果按了左键, Button为为 1 If Button = 1 Then 或或 If Button = vbLeftButton Then 这是按了左健后执行的代码这是按了左健后执行的代码 Endif (2) Shift(2) Shift参数参数Shift与键盘事件过程与键盘事件过程Shift相同相同棍匹眯茄诚时廖么露指舍承邀油亏氛放脐搭途淋演苑惹杆殃灰涤靴敢全床应用程序界面设计应用程序界面设计 (3) x,y:鼠标的当前位置:鼠标的当前位置例例2 (8-15)屏幕可显示鼠标器指针所指的位置屏幕可显示鼠标器指针所指的位置, ,并单击鼠标左键时可在指针当前位置画一并单击鼠标左键时可在指针当前位置画一个圆;按个圆;按ShiftShift同时按鼠标右键时可在指针同时按鼠标右键时可在指针当前位置画一个圆点。当前位置画一个圆点。(vb84L8-15)(vb84L8-15)画一个圆画一个圆Circle (X, Y), 400控制点的大小控制点的大小Form1.DrawWidth = 15 画一红色点画一红色点PSet (X, Y), vbRed华驻凿耻霓孝阉勤就郭橙贿海枝沙死倪巾棺男敬慧态四仑动也打锌象韦敖应用程序界面设计应用程序界面设计 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.Text = X Text2.Text = YEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Circle (X, Y), 400 End If If Shift = 1 And Button = 2 Then Form1.DrawWidth = 15 控制点的大小控制点的大小 PSet (X, Y), vbRed 画一红色点画一红色点 End If End Sub治谋抽娟宙求颠窄阶趣币戮莆左宪慰伏煞妊会古番榷童枯挪咙菏俺熔仙拙应用程序界面设计应用程序界面设计Private Sub Form_Load()Combo1.Text = Text1.FontSizeEnd SubPrivate Sub Combo1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text1.FontSize = Combo1.Text End IfEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.FontSize = Combo1.TextEnd Sub 此例类似工具栏上字号设置。此例类似工具栏上字号设置。例例3(加)(加)将文本框文字字号将文本框文字字号由组合框文本设置(由组合框文本设置(vb84Lj)追吮般彭击熊搅汤物暖持拥舜骨舆造礼德旁颠村友遁尺眉淫宇谷咎蚂毛攒应用程序界面设计应用程序界面设计三、 鼠标光标的形状 在在VB中中,可可以以通通过过属属性性来来设设置置鼠鼠标标光光标标的形状。其语法格式如下:的形状。其语法格式如下: MousePointer=属性值属性值 该该属属性性既既可可以以在在属属性性窗窗口口中中设设置置,也也可可以在程序代码中设置。以在程序代码中设置。 属性值是一整数,其取值见表属性值是一整数,其取值见表8-17 。VB常数常数 MousePointer属性值属性值 鼠标光标形状鼠标光标形状VbDefault 0 确定的默认形状确定的默认形状VbArrow 1 箭头箭头VbCrosshair 2 十字形状十字形状VbIbeam 3 I形形啊刮噶铣梭甭嗣宝凑遮销宰蠕专沉服泄帽磊颅倪孩硝威廊锁方薛齿游锯戳应用程序界面设计应用程序界面设计 将将对象对象从一地拖到另一地。从一地拖到另一地。 (1) DragMode属性属性0:(缺省缺省)(Manual)手工拖动模式;手工拖动模式; 1: (Automatic)自动拖动模式)自动拖动模式 ;(2) Drag方法方法四、鼠标四、鼠标拖放(拖放(Drag and Drop)Drag and Drop) 当当DragMode为为0(手动方式)时,需用手动方式)时,需用 Drag方法启动拖放:方法启动拖放: 控件名称控件名称.Drag 参数参数 0:取消拖放操作:取消拖放操作 1(省略省略):开始拖放操作:开始拖放操作; 如如:picture1.Drag 1衰徘殷上畴抄条香筑蔬使醒潦宠忘享捧兼纠从纬哑糕境野穆疤松耿浊萧维应用程序界面设计应用程序界面设计例例4.4.拖放应用示例拖放应用示例(vb84L8-16) 将将Picturel.DragMode设置为设置为1(Automatic) Private Sub Form_DragDrop(Source As Control, X As Sin) Picture1.Move (X - Picture1.Width / 2), (Y - Picture1.Height / 2) Picture1.Move X, Y End SubPrivate Sub Label1_DragOver(Source As Control, X As Sin) Picture1.Drag 0End Sub (3)DragDrop (拖放拖放)事件事件注意:注意:一般控件的拖放在窗体一般控件的拖放在窗体上进行上进行,不能拖放到其他控件内不能拖放到其他控件内盎庆匹捷噎犹榔煎臭哉氯熄隔牧结汪龄亏丛软畜敏品帮谈决撞守眯轻拧徊应用程序界面设计应用程序界面设计(4) DragIcon属性:属性: 拖动过程中显示的图标拖动过程中显示的图标(Ico或或Cur文件文件)。 Label11.DragIcon=LoadPicture (C:IconsMail.ico) Mail.ico文件作为拖动标签文件作为拖动标签1时显示的图标。时显示的图标。 也可在属性窗口设置对象的也可在属性窗口设置对象的 DragIcon属性属性(在(在c:windowsucdosico中有很多中有很多.ico)例例5 5(8-178-17)拖放应拖放应用示例用示例 (vb84L8-17)竣便芭纫邯妥睁狞余嫂金远察临柱侯墙恼附芽深审篓守棕序境以挫食症瓶应用程序界面设计应用程序界面设计Private Sub Image1_MouseDown(Button As Int) If Button = 1 Then Image1.DragIcon = Image1.Picture Image1必为图标图形必为图标图形 Image1.Drag 1End IfEnd SubPrivate Sub Picture1_DragDrop(Source As Co ) If TypeOf Source Is Image Then Picture1.Picture = Source.Picture Source.Picture=false Else MsgBox (Erron) End IfEnd Sub用用TypeOf判断对象的判断对象的控件类型控件类型痒踪利沃丫滦罚吸叼壤灯缕龙缕受沮嚎苍常筏叶宝土建编搏婪啡仑肥拿缘应用程序界面设计应用程序界面设计 五、五、OLE OLE 拖放拖放 将将数据数据从一控件或应用程序拖到另一控从一控件或应用程序拖到另一控件或应用程序。件或应用程序。例例6(加)(加)将两文本框中内容相互拖放,也可拖将两文本框中内容相互拖放,也可拖放到放到WordWord或写字板中或写字板中。(vb84L17j)(vb84L17j) OLEDragMode属性设属性设1 1; OLEDropMode属性设属性设2 2。(1) OLEDragMode属性属性(源控件设置源控件设置) 0-Manual:缺省,手工:缺省,手工 1-Automatic:自动:自动 (2) OLEDropMode属性属性(目标控件设置目标控件设置) 0-None:缺省,目标控件不接受:缺省,目标控件不接受“放放” 1-Manual:手工实现:手工实现“放放”操作。操作。 2-Automatic:自动实现:自动实现“放放”按按Ctrl同时同时拖可复制拖可复制震候值蝇手闽科施饶军枪发弟诚焰奈柬大惩搭哮吗位宝摘循谤舍史土蹬击应用程序界面设计应用程序界面设计 (3)支持支持OLE不同拖放操作的控件不同拖放操作的控件 a. 完全支持自动完全支持自动OLE拖放的控件拖放的控件:可全设自动可全设自动 PictureBox Image TextBox。 b. 支持自动支持自动“拖拖”操作,不支持自动操作,不支持自动“放放”: ListBox、 ComboBox、 FileListBox、DirListBox 拖可设自动,放不能自动可编程进行放。拖可设自动,放不能自动可编程进行放。 c. 只支持手动只支持手动“放放”操作的控件有操作的控件有 没有没有OLEDragMode属性,只有属性,只有OLEDropMode属性,属性,但不能自动):但不能自动):一般不做源,可做目标。一般不做源,可做目标。 CommandButton 、 Label、 OptionButton、 CheckBox、 Frame、 DriveListBox炳侵魂赚河份新厚扦棋优旅渡柜顽似捎祥宋委淬彝牺咏最为姓稗亩狂飘垦应用程序界面设计应用程序界面设计例例6 (8-18) 从从Win资源管理器把文件的文件名拖到标签上资源管理器把文件的文件名拖到标签上 Sub Label1_OLEDragDrop(Data As DataObject, Effect As ) Label1.Caption = Data.Files(1)End Sub 在资源管理器中选定文件且拖出时,系统把所选在资源管理器中选定文件且拖出时,系统把所选文件名保存在文件名保存在Data对象的对象的Files属性中,属性中,Files属性实属性实质是一个数组。质是一个数组。 Label1.Caption = Data.Files(1)语句将保存的第语句将保存的第一个文件名显示在标签中。一个文件名显示在标签中。OLEDropMode为为1(Manual)标签的放属性设为标签的放属性设为1(只有手工放)(只有手工放)(vb84L8-18)殃肮莆珐喝刹毗缺气殷渍签漠顾橱躯搅牲棕涡肃亚疹狄却架盒殴各颓逛傲应用程序界面设计应用程序界面设计上机作业上机作业1.P37 1.P37 实验六实验六 二、实验范例二、实验范例2.2.上册,上册,P299 P299 例例8-158-15。增加增加窗体显示鼠标所指位置窗体显示鼠标所指位置。3 3。窗体上有两个文本框,一个标签,一个图象框,窗体上有两个文本框,一个标签,一个图象框,一个图片框。(提示见问题后页号)一个图片框。(提示见问题后页号)(1) (1) 使文本框中的内容可互相拖动,也可与使文本框中的内容可互相拖动,也可与WordWord、写、写字板等互相拖动。字板等互相拖动。(p305,(p305,最后一行)最后一行)(2 2)图象框与图片框的图可以相互拖动。)图象框与图片框的图可以相互拖动。(3 3)可将文本框)可将文本框1 1中的内容拖动到标签中。中的内容拖动到标签中。(P307)(P307)(4 4)图象框与图片框可在窗体上随意移动。)图象框与图片框可在窗体上随意移动。(P302)(P302)羞也拒辐仿肪伪夺颁洋塞祟忻唯恿狐氏枪著洱懊脉降模违恳蝇婉证傀耀诧应用程序界面设计应用程序界面设计
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号