[定稿]VB窗体的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
第四章 窗体的设计
4.1,窗体的属性
4.2.1鼠标事件
Mousedown 、mouseup、mousemove、click、dblclick
1,click事件与dblclick事件
Private sub form_click() Private sub form_dblclick()
End sub End sub
双击则两个事件都执行
2,mousedown、mouseup、mousemove事件
Private sub form_down(butten as integer,shift as integer,x as single ,y as single)
End sub
Private sub form_mouseup(butten as integer,shift as integer,x as single,y as single)
End sub
Private sub form_move(button as integer, shift as integer ,x as single ,y as single)
End sub
Button 返回值和对应操作: 1 对应左键;2对应右键;4 对应中键
Shift返回值和对应操作: 1 对shift ;2对应ctrl ;4对应alt
例子:识别用户所按的键
Private sub form_mousedown(butten as integer,shift as integer,x as single,y as single)
Select case button
Case 1
Form1.print “您按下的是左键”
Case 2
Form1.print “您按下的是右键”
End select
End sub
例子:探测鼠标的位置
Private sub form_mousemove(button as integer,shift as integer,x
as single ,y as single)
Text1.text=”x=”&x&” ”&”y=”&y 4.2.2键盘事件
Keydown、keyup、keyclick
1,keyclick 事件
Private sub form_keypress(keyascii as integer)
End sub
Keyascii返回按键的ASCII码
例子;显示所按键的ASCII码
Priviate sub form_keypress(keyascii as integer)
Print “所按的键的ASCII码值为:”&keyascii
End sub
2,keydown、keyup事件过程
Private sub form_keydown(keycode as integer,shift as integer)
End sub
Private sub form_keyup(keycode as integer,shift as integer)
End sub
Shift 的含义和鼠标事件的一样
与上面的keyascii不同,此时的keycode 返回的是键码非
ASCII值。
功能键、换挡键、编辑键没有ASCII码,但多有键都有一个
键码。一个键一个码,大小键盘上的数字键的键码不同。对字母
键码为大写ASCII码。有上下档的按键,键码为下档字符的ASCII
码。
4.2.3其他事件
实例:窗体的RESIZE事件
代码:private sub form_resize()
Comsize.width=forsize.width/5
Comsize.height=forsize.width/6
Comsize.top=-(comsize.height/2-forsize.height/2)
Comsize.left=forsize.width/2-comsize.width/2
End sub
实例:queryunload事件
Private sub form_queryunload(cancel as integer,unloadcode
as integer)
End sub
为cancel赋非零则不关闭。如赋值为0则关闭。至于unloadmode
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示引起Query unload的原因后面有介绍
代码:private sub form_queryunload(cancel as
integer,unloadcode as integer)
If unloadcode=0 then
Print”单击关闭按钮想关闭我,休想~”
Cancel=true
End if
End sub
4.3.1 print
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
一般格式: 对象名.print 表达式 表达式是:1,数值表达式 先算值,在输出
2,字符串 原样输出
3,啥都没写 输出空行 输出多个表达式只需在各表达式间用分隔符分开
逗号:表达式间有14个字符位置
分号、空格、&:则各表达式紧密输出
一般每执行一print自动换行,表达式后写逗号或者分号来使
得其不换行。逗号间隔14列输出,分号紧密输出。
为了使字符显示在合适的位置:
Tab(n): n可选,指定表达式输出的其实列数,忽
略则输出点移动到下一个输出区的起点。
Spy(n): n必须,指定输出表达式间的空格数。
例子:
Ptint tab(3);”我爱”&“你” “~”, Print “你呢?”
Print tab(20) ;“哈哈”; spc(10);”我也是” 结果为:
我爱你~ 你呢,
哈哈 我也是
4.3.2 CLS方法
作用:清除图形方法画的图和print方法显示的文字。
语句:对象名.CLS
实例:单击在窗体写文字,双击清楚
Private sub form_click()
Print “双击可清除窗体的文字内容”
End sub
Private sub dblclick()
Cls
End sub
4.3.3 move方法: 使得对象正移动正变大小
一般格式:
[对象名.]move left[,top][,width][,height]
Left必选
Move left=12,top=23,width=233,height=32
4.4.1 窗体的操作
窗体三状态:未装载、装入但未显示、显示 装卸载格式:load/unload 窗体名 显隐窗体格式:窗体名.show/hide Show 效果和visible=true 一样。单独使用show相当于先load
再显示,但load作用如下:
1,有些窗口只载入不显示
2,加快显示速度
4.4.2 设置启动窗体
原因:多重窗体应用程序,需要指定程序运行时的启动窗口,
其他窗口由他创建。
步骤:工程...工程属性....通用选项卡....启动对象
实例;多窗体应用程序
Private sub comopen_click() Forsub1.show
Forsub2.show
End sub
Private sub comclose1_click()
Unload forsub1
End sub
Private sub comclose2_click()
Unload forsub2
End sub
4.5 设置窗体位置
1,设置窗体的LEFT、TOP属性 2,视图...窗口布局.. 即可显示程序启动后窗体的位置,可
通过鼠标拖动窗口到合适的位置。
4.6创建工具栏
创建工具栏需要两个控件:toolbar、imagelist 步骤:1,把toolbar、imagelist添加到工具箱
2,把toolbar、imagelist加入到窗体
3,用imagelist添加图片
4,用toolbar创建按钮
5,编写代码
4.6.1添加工具栏和图像列表
工程...部件...microsoft windows common controls 6.0
确定
4.6.2向imagelist添加图片
Imagelist在运行时不显示,并且不能单独使用,可作为能
显示图片的控件的图像资源库。
先把图片添加到imagelist中,然后让他与toolbar相关联。
添加步骤;把imagelist添加到窗体...右键...属性...图像标签...插入图片...选择(((确定。。。重复插入多个。
删除步骤:在imagelist里面选中图。右键,删除。
默认情况下系统为第一个图片定索引号,,第二个,(((也可自行为图设置关键字。以后通过索引号和关键字调用图片。
Vb安装目录\common\graphics\bitmaps\tibr_95中有好多windows的按钮图标。
4.6.3使用工具栏图标
工具栏的alignment属性:1_vbaligntop、2_vbalignbottom、0_vbalignnone(悬浮工具栏)
添加toolbar...右键属性...通用选项卡
图像列表:设置与imagelist的关联,
允许自定义(allowcustomize):选中则允许用户通过双击工具栏打开(自定义工具栏)对话框重设工具栏。、
显示提示(showtips):鼠标放在其上,会显示工具提示。
可换行的(wrappable):若一行容不下按钮,换行。
有效(enabled):确定按钮是否可用。
通用选项卡用于设置整个工具栏的按钮,建立按钮则在按钮
选项卡中执行。
按钮选项卡
选择插入按钮,设置相关属性则可插入按钮。
按钮就像数组中的元素,可通过索引访问。
例:toolbar.button(1).caption=“打开”
重要属性:1,标
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
(caption ):按钮上显示的文字,通常为功能。
2,键(key):按钮的名字,程序上可通过该值引用按钮。 3,样式(style):按钮的类型
4,工具提示文本(tooltiptext):鼠标停留时显示的工具提示。
5,图像(image):按钮上显示的图片的索引号或关键字。
4.6.4为工具栏编写代码。
双击toolbar1,打开代码窗口。 Private sub toolbar1_buttonclick(byval button as
mscomstllib.button)Select case button.key Case “bopen”
Print “打开文档”
Case “bsave”
Print “保存文档”
Case “print”
Print “正在打印”
End select
End sub
实例:创建状态栏
将状态控件放到FORM上,调整alignment属性设置其位置。
右键该控件。。。属性。。窗格选项卡(此时索引文档部分显示为1,表明次属性针对第一个窗格而言。)
可通过索引号或者关键字调用窗格。
窗格的样式表明窗格内的显示内容:
设计阶段设置:在属性窗口中设置或属性窗中
运行阶段设置:statusbar1.panels(1).style=sbftime
可通过 插入窗格 按钮插入更多窗格。
代码如下:
Rem 按钮:
Privates sub command1_mousemove(button as integer,shift
as integer,x as single,y as single)
Statusbar1.panels(2).text=”这是按钮”
End sub
Rem 文本框
Private sub text1_mousemove(button as integer,shift as
integer,x as single ,y as single)
Statusbar1.panels(2).text=”这是文本框”
End sub
„窗体
Private sub form_mousemove(button as integer,shift as
integer,x as single ,y as single)
Statusbar1.panels(2).text=”欢迎”
End sub
7.1菜单简介
三个约定:1,菜单项后面有省略号,则点击会有对话框
2,菜单项后有三角形,则点击会有字菜单项
3,出了以上两种,则点击会执行操作 菜单项后面有时有访问键、快捷键。 各个菜单项之间还有分割条,讲菜单项分开。 7.2菜单编辑器简介
工具...菜单编辑器:
标题:菜单的名字(caption),创建访问键:新建(&n)
创建分割条:在此文本框中输入连字符“-”
名称:用来输入菜单名,就是对象名 索引:指定数值来确定控件在控件数组中的位置。 快捷键:为命令选择快捷键。
帮助上下文ID:允许为context ID指定唯一数值。 协调位置包括四个:
复选(checked):允许菜单项左边出现复选标记。 有效:决定该菜单项是否对事件做出反映。 可见:是否将菜单项显示在菜单上。 显示窗口列表:在MDI应用程序中,确定菜单控件是否包含一个打开的MDI子窗体列表。
右(左)箭头:没单击一次,选定菜单右(左)移一个等级,共
可创建四个子菜单等级。
上(下)箭头:没单击一次都把选定菜单项在同级菜单内向上(下)移动一个位置
下一个:用于产生下一个菜单项。
插入:在列表的当前选定项前插入一行。 7.3.1建立菜单
实例:创建菜单
有文件和编辑。其中文件有:新建、关闭、(分割条)退出。
编辑有:颜色、黑体、字号。
字号:有三个菜单项
步骤:1,打开 菜单编辑器,确保窗体为当前活动窗口。
当工程中有多个窗体是,为当前活动窗体创建菜单。
2,标题 “文件(&F)”
3,名称 “MenFile”
4,单击下一个,可输入另一个菜单控件。
5,标题 “新建(&N)”;名称 “MenNew”
快捷键:“Ctrl+N”
6, 单击右按钮,新建右移了一点且其前加入四个点,表示新建成了文件的子菜单项。
7,单击下一个,内缩号仍然存在,表明任然是文件子菜单。
一次创建关闭、分割条和退出。
8,单击下一个,单击左按钮,创建编辑菜单
9,标题 编辑(&E); 名称 Edit
10,像文件菜单创建一样创建三个子菜单,再为字体创建名称一样的子菜单,并指定不同的索引。单击确定按钮
注意:也可以在属性对话框中为其设置
7.3.2编写代码
每个菜单项都是一个菜单控件,菜单控件只响应click事件。
分割条没有事件。
实例:为上述创建的菜单编写代码使其能执行标题对应的功能。
代码:private sub mennew_click()
Text1.text=””
Text1.visible=true
End sub
Private sub menclose_click() Text1.visible=false
End sub
Private sub menexit_click() End
End sub
Private sub mencolor_click() Diacolor.action=3
Text1.forecolor=diacolor.color End sub
Private sub menfont_click() Text1.fontbord=true End sub
Private sub mensize_click(index as integer)
Select case index
Case 0
Text1.fontsize=14
Case 1
Text1.fontsize=18
Case 2
Text1.fontsize=20
End select
End sub
7.4.1有效性控制
菜单编辑器 中的有效对应enable 实例:菜单项的有效性 使新建文档后,关闭有效而新建无效。
对上节代码进行修改为: Private sub menclose_click() Text1.visible=false
Mennew.enabled=true Menclose.enabled=false End sub
Private sub mennew_click() Text1.text=””
Text1.visible=true
Mennew.enabled=false Menclose.enabled=true End sub
7.4.2菜单项标记
也就是在菜单项前面打对号。 对应菜单编辑器中的复选框(CHECKED)
实例:菜单项标记
用上边例子,使得单击黑体或者字号后,选择的字号前有标记。
程序修改如下:
Private sub menfont_click() If menfont.checked=false then Text1.fontbold=true
Menfont.checked=ture Else
Text1.fontbold=false
Menfont.checked=false End if
End sub
Private sub mensize_click(index as integer)
Select case index
Case 0
Text1.fontsize=14
Mensize(0).checked=true Mensize(0).checked=false Mensize(0).checked=false Case 1
Text1.fontsize=18
Mensize(1).checked=ture Mensize(0).checked=false Mensize(2).checked=false Case 2
Text1.fontsize=20
Mensize(2).checked=true Mensize(0).checked=false Mensize(1).checked=false End select
End sub
7.4.3隐藏与显示
菜单编辑器中的可见(visible)对应这个选项。
实例:菜单项的隐藏与显示 只有在粗体时候,字号才显示出来。
代码修改成如下: Private sub menfont_click()
If menfont.checked=false then Text1.fontbold=true
Menfont.checked=ture Mensize.visible=ture
Else
Text1.fontbold=false
Menfont.checked=false Mensize.visible=false End if
End sub
7.5快捷菜单
指单击右键会弹出来的菜单。 实例:创建快捷菜单 右键窗体,弹出背景色,右键按钮弹出按钮的颜色、字体等。
注意:1,快捷菜单不显示标题,故可自由设定。
2,快捷菜单不出现在菜单栏里面,故visible为false
Private sub com_mouseup(button as integer,shift as integer,x as
single,y as single)
If button=2 then
Popupmenu popcom
End if
End sub
Popup 的一般格式为:
[窗体名].popupmenu 菜单名,flags,x,y,boldcommand
Flags:
X,y:指定快捷菜单出现位置的横纵坐标。基准点由flags参数指定,如果省略x,y 则快捷菜单在鼠标当前位置弹出。
Boldcommand:指定以粗体显示菜单名。 Private sub form1_mouseup(button as integer,shift as integer,x as
single,y as single)
If button=2 then
Popupmenu popform
End if
End sub
Private sub popcc_click()
Diacolor.action=3
Com.backcolor=diacolor.color
End sub
Private sub popfc_click()
Diacolor.action=3
Form1.backcolor=diacolor.color
End sub
Private sub popfont_click(index as integer)
Select case index
Case 0
Com.fontname=”宋体” Popfont(0).checked=ture Popfont(1).checked=false Popfont(2).checked=false Case 1
Com.fontname=”隶书”
Popfont(1).checked=true
Popfont(0).checked=false Popfont(2).checked=false Case 2
Com.fontname=”幼圆” Popfont(2).checked=true Popfont(1).checked=false Popfont(0).checked=false End select
End sub
7.6多文档面板。
单文档面板:指程序的各个窗口是相互独立的,他们在屏幕上
显示、移动、最小化、最大化与其他窗体无关。
多文档面板:窗体间不独立,MDI子窗体的活动限制在MDI窗体中,不能跑到其外。
7.6.1创建MDI界面
新建MDI界面:工程...添加MDI窗体...新建选项卡...MDI窗体...打开。
与普通窗体相比MDI窗体的特点: 1,MDI窗体背景深一些且有边框。
2,工程资源管理器中的MDI图标与普通窗体以及普通窗体转换成的MDI子窗体的图标间都不相同。 3,一个应用程序只能有一个MDI窗体。 4,MDI窗体上只能方有alignment的控件和不可见窗体的控件,如非要放置其他则可将他们放到图片框里面然后在放入。
5,MDI有两个特有属性:
Autoshowchildren:决定在子窗体载入后是否立马显示子窗体。
Scrollbars:决定MDI窗体在必要时是否显示滚动条。
子窗体的创建:先创建普通窗体,再设置MDIchild=true。此属性只能在设计阶段设置。
7.6.2MDI窗体的特点
实例:创建一个MDI窗体和它的一个子窗体。
1,如果启动窗体是子窗体,运行时MDI窗体也启动。否则子窗体不自动载入。可在工程属性里面设置启动窗体。
2,子窗体的加载卸载与普通窗体一样,MDI窗体卸载与普通窗体一样。Autoshowchildren=true时用load form1显示子窗体。
3,子窗体最小化后图标显示在MDI窗体上。 4,MDI窗体与子窗体都可创建菜单,但是如果子窗体打开则MDI窗体上显示当前活动的子菜单,否则显示MDI自身的菜单。
7.6.3新建子窗体。
方法1:在程序中创建多个普通窗体,之后设置其MDIchild属性为true.(缺乏灵活性且浪费资源)
方法2:通过对象变量来创建子窗体。
声明窗体的对象变量:DIM 变量 AS NEW 窗体名(已存在)
变量.Show
实例:新建子窗体
Private sub mennew_click() Dim docform as new frmchild Static i as integer
Docform.caption=”无标题”&i+1 Docform.show
I=i+1
End sub
Private sub menexit_click() Unload MDIform.activeform End sub
Private sub frmchild_click() Text1.text=”欢迎”
End sub
注意:创建的子窗体都与模版一样。 MDI窗体的activeform属性;
MDIform.activeform.caption=”ABCD”
将当前子窗体的标题改为ABCD 7.6.4 创建窗口菜单
窗口菜单作用:1,使子窗口层叠、平铺、排列图标等,
2,可以显示所有已打开子窗体列表。
对于上边的作用的实现:可在菜单编辑器中选中该菜单的 显示窗口列表复选框,或设置windowlist=true,而且可以通过arrange方法是窗体按一定的规律排布。且一般格式:
MDI窗体名.arrange 参数
实例:创建窗口菜单
为前面的实例添加一个窗口菜单。
Private sub menw_click(index as integer)
Select case index Case 0
MDIForm1.arrange 0 Case 1
MDIForm1.arrange 1 Case 2
MDIForm1.arrange 2 Case 3
MDIForm1.arrange 3 End select
End sub
对话框的设计 6.1预定义对话框
是最容易的方法,但外观上收到限制。
6.1.2输入框
输入框函数inputbox
Inputbox (prompt[,title][,default][,xpos][,ypos][,helpfile,context])
如果提供了helpfile comtext则可按f1查看与context相应的帮助主题。
单击确定则返回用户输入内容,单击取消则返回空字符串””
神罗某位置参数时有例如:
Word=inputbox(“请输入要在窗体中显示的内容:”,”输入“,,200,200)
实例:使用输入框
窗体上放一个按钮,且其caption=”请输入要显示的内容” Private sub command1_click()
Word=inputbox(“请输入要显示的内容”,”输入”) Print word
End sub
6.1.2消息框
用于报告错误或者向用户提供提示信息。 Msgbox的一般形式:
Msgbox(prompt[,button][,title][,helpfile,context])
下图中,1to5为第一组:描述按钮的类型数目;17 32 48 74为第二组:描述图标样式;0 257 512 778为第三组:描述哪个按钮为默认值;0 4097为第四组:决定对话框的强制返回性。
将数字相加以生成button值的时候,以上每个组只能取一个值。
实例1:使用消息框
窗体上一个文本框一个按钮,运行时,单击按钮,若文本框中有文字则显示在窗体上,否则弹出对话框来告诉用户没有输入任何内容。
文本框 名称 text1; caption 制空 按钮 名称 command1; caption 确定 Private sub command1_click()
If text1.text=”” then
Msg=msgbox(“您没有输入任何内容”,48,”提示”) Else
Print text1.text
End if
End sub
6.2通用对话框
通用对话框可以创建的对话框:打开对话框、保存对话框、颜色对话框、字体对话框、打印对话框。
注意:通用对话框控件在vb和microsoft windows动态库commdlg.dll历程间提供了接口,为了使用控件创建对话框要求commdlg.dll必须在mcrosoft windows\system目录下。
添加通用对话框到工具箱:工具...部件...microsoft common
dialog control ...确定
6.2.1打开对话框方法
1,通过action属性。
实例1:打开 打开对话框
Private sub command1_click() Commondialog.action=1
End sub
2,通过通用对话框的方法打开对话框
例如:commanddialog1.showopen
6.2.2打开与保存对话框(属性相似、一同介绍)
Filter属性的格式设置:
描述符1|过滤法1|描述符2|过滤符2|......|
描述符任意指定,过滤符由通配符和文件扩展名组成。
例如;*.* *.doc *.txt *.bmp
对filterindex=2,则对话框 文件类型 缺省显示的是描述符2,
与defaultext相比,次属性针对 打开对话框,
Filter 的属性也是上表中的一项或多项相加的值。 实例2:打开保存对话框的使用
用户调用打开保存对话框,并获取用户打开或保存文件的路径和名称。
Private sub comopen_click() Commondialog1.dialogtitle=”打开文件” Commondialog1,initdir=”d:\window” Commondialoge1.filter=”图像文件|*.bmp|文本文件|*.txt|”
Commondialog1.filterindex=2 Commondialog1.flags=528
Commondialog1.action=1
Texopen.text=commondialog1.filename End sub
Private sub comsave_click()
Commondialog1.dialogtitle=”保存文件” Commondialog1.initdir=”f:\document” Commondialog1.filter=”word文档|*.doc” Commondialog1.flags=7
Commondialog1.action=2
Texsave.text=commondialog1.filename End sub
6.2.3颜色对话框
Color属性:设置或返回该对话框中选定的颜色值。255红0
为黑17777215为白。
Flags属性:
实例:使用颜色对话框
通过颜色对话框去标签的背景色以及显示对应的颜色值
Private sub comcolor()
Diacolor.action=3
Labcolor.backcolor=diacolor.color
Texcolor.text=diacolor.color
End sub
6.2.4字体对话框
实例:字体对话框的使用
代码:private sub comfont_click() Diafont.action=4
Texfont.fontname=diafont.fontname Texfont.fontsize=diafont.fontsize
Texfont.fontborder=diafont.fontborder Texfont.fontitalic=diafont.fontitalic
Texfont.fontunderline=diafont.fontunderline Texfont.fontstrikethru=diafont.fontstrikethru Texfont.color=diafont.color
End sub
6.3自定义对话框
就是在一个窗体上放置控件用来接受用户的输入 实例:自定义对话框
用户在对话框中输入个人资料,并能将个人资料显示在主窗体中。
代码:rem 主窗体中 Private sub opendialog_click() Dialog.show „代开自定义对话框 End sub
Rem 对话框中的按钮 Private sub okbutton_click() „显示姓名
If textname.text=”” then Msg.msgbox(“请您输入姓名”,48,“填写”)
Exit sub „退出改程序 Else
Mainform.labname.caption=textname.text
End if
If opman=true then
Mainform.labsex.caption=”男” Else
Mainform.labsex.caption=”女” End if
Mainform.labage.caption=combage.text If h1.value=1 then
Mainform.l1.caption=”书法”
Else
Mainform.l1.caption=”//” End if
If h2.value=1 then
Mainform.l2.caption=”摄影” Else
Mainform.l2.caption=”//” End if
If h3.value=1 then
Mainform.l3.caption=”钓鱼” Else
Mainform.l3.caption=”//”
End if
If h4.value=1 then
Mainform.l4.caption=”旅游” Else
Mainform.l4.caption=”//” End if
Unload dialog
End sub
Private sub cancelbutton_click() Unload dialog
End sub