a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 96|回复: 2

[Visual Basic] 2011年计算机等级考试二级VB基础教程(5)

[复制链接]
发表于 2012-7-31 22:10:12 | 显示全部楼层 |阅读模式
  2.1 VB用户界面设计基础
9 u9 R* w3 ?' R* s: g: K/ w  1. 概述3 m; U$ y+ X( `, R* g4 f5 k" N
  界面的设计有两步:先绘制控件,然后确定控件属性。
! c( r7 ^0 i5 B/ R; n  绘制控件:在工具箱里单击想画的控件,在窗体里按下鼠标并拖曳,然后松开鼠标即可。确定属性:先选中控件,然后按F4键或单击工具栏上的属性窗口进入属性(Properties)窗口,再在属性窗口中找到要设置的属性并进行设置。5 T" l2 z' y2 `4 G. |- x  `" h
  2. 常用属性的设置
/ R5 a+ k1 X- u. @  (1)Name属性
  f+ Y8 p, [3 P! F, X  对象都有名字,计算机把名字看成对象于对象之间的根本差异,因此在同一窗体里不许出现重名的情况(除非这是一个控件数组),且名字不得超过40个字。
  u% f1 |) ?# d( w2 D) Q  在简单的程序里,给控件命名不是很必要,完全可以使用控件Name属性的缺省值。例如Text1。但在有几十个控件的复杂窗体里,就很难区分它们。所以,VB推荐由三个小写字母的前缀和一个第一个字母为大写的描述性单词组成的名字。例如cmdMyButton是一个命令按钮(前缀是cmd); _2 S) a$ S  C7 q
  (2)Caption属性
2 |, I3 ]$ d: w/ C& s' O8 o  Caption即标题,是可以在对象外观上直接看见的文本,可以长达255字符,包括空格和标点符号,比如一个叫cmdOk的命令钮,它的Caption属性就可以是“Ok”。 注意:并不是所有的对象都有此属性,比如文本框、图片框、线条等就没有。
" l. S6 s3 g! h+ t% h% y" ?: L  为按钮设置热键:在设置Caption属性时,在需要加下划线的字母前加上 “&” 符号,例如 “&File”,输出的就是“File”,这样就可以通过按ALT键和标题上那个带下划线的字母来选取它了, 不必为此编任何代码。
, ^' C9 ^% M2 B  Name和 caption的比较:5 W, u( a. a7 a* y8 `
  1) Name是系统用来识别对象的,编程时需要用它来指代各对象;Caption是给用户看的,提示用户该对象的作用;' b2 u: g9 p/ B, n7 I3 `3 \
  2) Name可以采用系统默认的名称,但Caption应该根据实际情况改成意义明了的名词;  b. {4 Z8 g- e, w3 Y# C
  3)所有对象都有Name,但不一定都有Caption;
' C' \3 U, m+ i; ~. Y  (3)Top,Left属性
! `$ K3 e$ m( R8 E  这两个属性决定对象的位置。只有两种情况需要在属性窗口里设置这两个属性:第一种是用户没有鼠标,第二种是程序员需要十分精确地设定这两个值。当选中对象,单击并拖曳它的时候,便在修改这两个值了。
, L' {) R. t4 D: B" w8 q6 r  (4)Height,Width属性
7 S3 E2 {0 Q8 c9 p1 q! |8 f6 T0 {  这两个属性决定了对象的大小,当选中控件时,它周围出现八个小黑方块,把鼠标指向这些方块,鼠标指针将变成一个双向的箭头,这时按下鼠标并拖曳它,即可改变控件的大小,也就改变了Height,Width属性。
2 p7 d( @1 `/ h( _3 ]/ I. I7 R  1. 窗体的属性
4 p7 a# y4 b6 ^- g. V; T! n  (1)设置属性的方法4 m% I1 X" z$ V
  1)在设计态通过属性窗口设置
5 R" R* n; E  ?; E6 F8 ~/ S* v  直接在属性窗口中选择或输入既可。
( w4 C, b; r: m& {. A- N  2)在程序代码中改变属性值
* `5 ?) o" D5 v' u. m  代码中的格式为: 对象名 . 属性 = 属性值
! y5 N. y7 v5 R5 z  例:Form1.BackColor=RGB(255,0,0), \: j% K! x- X9 ?( w0 \; P9 X
  2. 窗体的常用方法; P3 U) E. C3 y
  (1)Hide方法( F+ V% r0 v) L: W
  用以隐藏 MDIForm 或 Form 对象,但不能使其卸载。/ H2 z' M8 s7 j) T# @2 Y
  语法:object.Hide( U! l# b0 q: n7 Y$ Q/ |
  object 所在处代表一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,则带有焦点的窗体就认为是该 object。) W7 C/ W: B" n% R& U1 r# O
  说明:
8 x  c$ Y( c% p9 ^  隐藏窗体时,它就从屏幕上被删除,并将其 Visible 属性设置为 False。 用户将无法访问隐藏窗体上的控件,但是对于运行中的 Visual Basic 应用程序,或对于通过 DDE 与该应用程序通讯的进程及对于 Timer 控件的事件,隐藏窗体的控件仍然是可用的。
; J2 v! B- u( z  窗体被隐藏时,用户只有等到被隐藏窗体的事件过程的全部代码执行完后才能够与该应用程序交互。
6 U5 w' {, Z/ [) _& }  如果调用 Hide 方法时窗体还没有加载,那么 Hide 方法将加载该窗体但不显示它。
5 G! \( c' i# X" F7 Y6 c  [( N  (2)Move方法
/ f3 Q$ J4 D( n' [' z. x2 Z  用以移动 MDIForm、Form 或控件。2 _* M& N) M8 T2 x0 C2 B: u
  语法:object . Move left, top, width, height+ \3 z8 w3 A, `1 [
  说明:只有 left 参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定 left 和 top 参数,则无法指定 width 参数。任何没有指定的尾部的参数则保持不变。8 P7 J4 H1 F7 i. ^: M9 `
  (3)Print 方法
" J0 Y" P4 F0 Q5 \  在 Immediate 窗口中显示文本。
4 \! b: t' T* ^# o/ T) j# a  语法:object . Print [outputlist]
5 W4 j' F4 x1 y, l, D! b0 O2 K  Print 方法的语法具有下列对象限定符和部分:3 T& a) F/ L# g1 g$ b' ^. a
  outputlist 参数具有以下语法和部分:
1 q4 _% |6 L  m  {Spc(n) | Tab(n)} expression charpos0 ]) G7 @: ^4 Z- i+ @
  说明:
3 P3 a% w4 D6 l% V/ M2 E  可以用空白或分号来分隔多个表达式。
6 L! [. Q2 ^7 y3 x8 H9 M1 R  对系统指定的国别设置,用小数点分隔符将所有打印到 Immediate 视窗的数据正确格式化。关键字要用适用于主应用程序的语言输出。
3 D5 W4 P5 y+ R- d1 a, f  对于 Boolean 数据,或者打印 True 或者打印 False。根据主机应用程序的地区设置来翻译 True 和 False 关键字。) h" _6 r+ p6 X" n# E" _& F
  使用系统能识别的标准短日期格式书写 Date 数据。当日期或时间部件丢失或为零时,只书写已提供的部件。
. [9 a: _: |% M) J" m9 h8 E  如果 outputlist 数据是 Empty,则无内容可写。但是,如果 outputlist 数据是 Null,则输出 Null。在输出 Null 关键字时,要把关键字正确翻译出来。
, H/ P1 G) P" c9 |7 h6 h/ ^2 L  要把错误数据作为 Error errorcode 输出。在输出 Error 关键字时,要把关键字正确翻译出来。
% _: B; _$ c5 q0 @% z, ~7 V1 f7 A6 g, G. ?1 C
  如果在具有缺省显示空间的模块外使用此方法,则需要 object。例如,如果没有指定对象就在标准模块上调用此方法,则将导致错误发生,但是,如果在窗体模块上进行调用,则会在窗体上显示“outputlist”。
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:10:13 | 显示全部楼层

2011年计算机等级考试二级VB基础教程(5)

</p>  注意: 因为 Print 方法是按照字符比例进行打印,所以字符数与字符所占据的宽度固定的列的数目无关。例如,像 “W” 这样的宽字母占据的宽度超过一固定列宽,而像 "i" 这样的窄字母占据的宽度则较小。考虑到要使用比平均字符更宽的空间,表列一定要留有足够余地。另外,也可以使用固定间距的字体(像 Courier 字体)来确保每一字符均只占一列。
7 U# t: R" b- l# j/ Q( F/ j( l# c  (4)Print From方法- j$ {1 J9 L. d1 L* A9 o+ M
  用以将 Form 对象的图象逐位发送给打印机。
2 q6 L; o8 C. r- A& h8 Y" W, y. _  语法:object.PrintForm
% B; W0 j0 X. t( A9 Z  说明:Print Form 将打印 Form 对象的全部可见对象和位图。在绘制图形时,如果 Auto Redraw 属性为 True,则在运行时Print Form 将打印 Form 对象或 Picture Box 控件上的图形。+ e9 A8 o5 z5 M, q+ y% n
  Print Form 所使用的打印机是由操作系统的控制面板中的设置来决定。9 Y  |/ k! u% s! p& C# P- c
  (5) Refresh方法
1 \; O( r# n. v  强制全部重绘一个窗体或控件。# m* A4 e& B3 \4 I- c/ `) Q
  语法:object. Refresh
/ l% v2 A/ r" S3 Y" c4 r! ^  说明:在下列情况下使用 Refresh 方法:+ g+ U+ m0 y1 G. k
  在另一个窗体被加载时显示一个窗体的全部。
5 |9 @+ d1 W" z, ^  @5 Q5 Y+ u  更新诸如 FileListBox 控件之类的文件系统列表框的内容。
+ C- ^0 G$ v, {: a+ i# I  更新 Data 控件的数据结构。
) K5 W( C/ S  W4 B8 a% _  Refresh 方法不能用于 MDI 窗体,但能用于 MDI 子窗体。不能在 Menu 或 Timer 控件上使用 Refresh 方法。
) `' w, G2 c0 e7 a6 v  通常,如果没有事件发生,窗体或控件的绘制是自动处理的。但是,有些情况下希望窗体或控件立即更新。例如,如果使用文件列表框、目录列表框或者驱动器列表框显示当前的目录结构状态,当目录结构发生变化时可以使用 Refresh 更新列表。* O2 _% s  O+ \  O. q1 l
  可以在 Data 控件上使用 Refresh 方法来打开或重新打开数据库(如果 DatabaseName, ReadOnly, Exclusive 或 Connect 属性的设置值发生改变),并能重建控件的 Recordset 属性内的 dynaset。; U) Z0 J: {- ?" Y$ _* c0 Z
  (6)Show方法
5 [0 H( i  }7 |( c2 l! H! f1 J  用以显示 MDIForm 或 Form 对象。  z. \( q1 }; J8 k2 e& r- d
  语法:object.Show style, ownerform# s  V$ _- [. d0 A+ Z8 {
  说明:
1 t8 S2 D# R' E( v+ _# H6 [  如果调用 Show 方法时指定的窗体没有装载,Visual Basic 将自动装载该窗体。8 O" i, t% K9 h
  当 Show 在显示无模式窗体时,随后遇到的代码则要执行。当 Show 在显示模式窗体 (modal form) 时,则随后的代码直到该窗体被隐藏或卸载时才能执行。' T4 y; z7 ]% q3 v8 T# N3 F
  当 Show 在显示模式窗体时,除了模式窗体中的对象之外不能进行输入(键盘或鼠标单击)。对其它窗体进行输入前程序必须隐藏或卸载模式窗体(通常是处于响应用户某些操作状态)。MDIForm 不能是形式的。9 W8 O4 w3 {4 p/ {7 A1 @
  在模式窗体显示时,虽然应用程序中的其它窗体失效,但其它应用程序不会失效。
* \( F$ Z) X# P1 ^  应用程序的启动窗体在其 Load 事件调用后会自动出现。
5 M( j* O, e6 W4 W4 _6 k$ y  下面的例子说明如何使用ownerform 参数:" f5 s# ?8 L1 _6 R( H: k8 ]
  Private Sub cmdShowResults_Click()) V) A' `  m) b" l+ t
  ' 显示模式窗体 frmResults.
, W1 t- t+ g( _% I9 X* [0 F  frmResults.Show vbModal, Me' g# l( C; f/ ~0 p2 Q& n
  End Sub8 j5 \' _0 M1 c, _
  (7)Cls方法8 s; c. @9 ]+ i# H
  清除运行时 Form 或 Picture Box 所生成的图形和文本。( H; W0 y9 ?  k# R7 r: u# }6 q! p
  语法:object.Cls
4 t$ g+ a! E% J4 d; V  说明:
5 {2 i8 b8 M* n. R& V+ m$ y  Cls 将清除图形和打印语句在运行时所产生的文本和图形,而设计时在 Form 中使用 Picture 属性设置的背景位图和放置的控件不受 Cls 影响。如果激活 Cls 之前 Auto Redraw 属性设置为 False, 调用时该属性设置为 True,则放置在 Form 或 Picture Box 中的图形和文本也不受影响。 这就是说,通过对正在处理的对象的 Auto Redraw 属性进行操作,可以保持 Form 或 Picture Box 中的图形和文本。
' O" r3 v5 J# w! L0 k, h  调用 Cls 之后,object 的 CurrentX 和 CurrentY 属性复位为 0。
7 g" B7 j  O: B5 \* s- e5 J: g  3.窗体的常用事件5 d7 L) z) h% u- K6 ?" e: }9 N
  (1) Load事件' w% w- y) t) m5 a( j1 Q; y1 `
  这个事件发生在窗体被装入内存时,且发生在窗体出现在屏幕之前。窗体出现之前,Visual Basic会看一看Load事件里有没有代码,如果有,那么它先执行这些代码,再让窗体出现在屏幕上。' b: R$ r+ c- \! s9 W7 X
  (2) Click事件,Dblclick事件
* I: W% [( w2 i  这两个事件在单击或双击窗体时发生。不过单击窗体里的控件时,窗体的Click事件并不会发生,Visual Basic会去看控件的Click事件里有没有代码。
! D, `( M& ?/ \+ ]$ V  (3)Activate (活动事件)与Deactivate(非活动事件), h- E4 f8 Z# p* d9 ~6 J
  显示多个窗体时,可以从一个窗体切换到另一个窗体。每次激活一个窗体时,发生Activate 事件,而前一个窗体发生Deactivate事件。  W/ i; z1 L( X; E  v2 w0 u
  (4)Resize事件/ U1 n/ M" S# o! C1 @0 W% k( t
  在窗体被改变大小时会触发此事件。
4 S, X4 Q4 }- o4 G0 z- }+ I$ n  4.窗体的控制3 y. K# p9 L6 i. w# H8 P8 }
  (1) 装入或卸出窗体
  |/ {3 Y% S6 t' q/ L" ?% ^* k  要装入或卸出窗体,用Load 或Unload语句。' l# W- w) g2 Y2 ?
  装入窗体: Load formName
& @( y7 h6 r- X; L4 J% C5 d  卸出窗体: UnLoad formName$ q/ j0 c5 \( k* `( z* T
  FormName变量是要装入或卸出的窗体名。 Load语句只是把窗体装入内存,并不显示出来,要显示窗体可以使用窗体的Show方法。
- e# w) N, ~6 J$ y$ B" D  (2) 显示或隐藏窗体/ {2 @9 N+ e8 n* p: \. l
  要显示或隐藏窗体,用Show或Hide方法。若尚未装入内存则先装入再显示。  t5 M; J+ c6 O8 b2 r
  显示窗体: formName.show mode7 E$ x2 [! K$ u' j4 i
  隐藏窗体: formName.hide2 @) J6 S  C) f& h
  FormName变量是窗体名,可选变元mode为0(缺省值)时窗体为非模态,为1时窗体为模态。模态窗体完全占有应用程序控制权,不允许切换到别的应用程序,除非关闭!而非模态窗体则反之。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 22:10:14 | 显示全部楼层

2011年计算机等级考试二级VB基础教程(5)

  (3)END语句& O" [, a, v3 @" m; b; i
  END语句的功能是终止应用程序的执行,并从内存卸在所有窗体。5 _4 s( \7 @* d: X8 H
  语法是: END
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-2 03:53 , Processed in 0.183625 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表