当前位置:文档之家› vf表单设计

vf表单设计

【例1】若某表单中有一个文本框Text1和一个命令按钮组CommandGroup1,其中,命令按钮组包含了Command1和Command2两个命令按钮。

如果要在命令按钮Command1的某个方法程序中访问文本框Text1的Value属性值,下列句子中正确的是________。

(A)This.ThisForm.Text1.Value (B)This.Parent. Text1.Value(C)Parent.Parent. Text1.V alue (D)This.Parent. Parent.Text1.Value(注:答案(D)属于相对引用方式,如果使用绝对引用方式,则应写为:Form1.Text1.Value)【例2】在表单中加入两个命令按钮Command1和Command2,编写Command1的Click 事件代码如下,则当单击Command1后,________。

ThisForm. Parent. Command2.Enabled=.F.(A)Command1命令按钮不能激活(B)Command2命令按钮不能激活(C)事件代码无法执行(D)命令按钮组中的第二个按钮不能激活(注:①①命令按钮的Enabled属性值为.F.时,该控件将以浅色显示,表示此按钮当前无效。

②②ThisForm. Parent. Command2.Enabled=.F.事件代码的功能实际将当前表单的父对象中的命令按钮Command2的Enabled属性值设置为.F.。

答案(C)该事件代码无法执行,是因为对Command2对象的引用和描述不正确。

③③如果要使Command2命令按钮不能激活,正确的事件代码应为:This. Parent. Command2.Enabled=.F.即将当前对象(命令按钮Command1)的父对象(当前表单)中的Command2命令按钮的Enabled属性值设置为.F.。

)【例2】可选择不同字体的表单操作步骤如下:1. 1.打开“表单设计器”或“MODIFY FORM……”2. 2.添加两个标签、一个文本框、一个选项按钮组、一个命令按钮,放在合适位置并调整其大小。

3. 3.设置属性:控件名称属性名设置值Label1 Caption 请输入文本内容:FontSize 18AutoSize .T.Label2 Caption 请选择字体:AutoSize .T.FontSize 18Text1 FontBold .T. &&设定为粗体字FontSize 26ForeColor 0,0,255 &&设置文本为蓝色Command1 Caption 关闭注:有关颜色设置RGB函数能返回一种颜色,它的格式为:RGB(nRedValue,nGreenValue,nBlueValue)其中3个参数分别表示颜色中含有红、绿、蓝的成分,范围都是0~255。

在属性窗口可以查看RGB参数。

4. 4.设置选项按钮组Optiongroup1:右击——生成器——在“按钮”选项卡中设置按钮数为4,将表格标题列的4项标题分别设置为:“黑体”、“宋体”、“隶书”、“楷体”;在“布局”选项卡中设置4个按钮的适当间隔。

5. 5.Optiongroup1的Click事件代码:Do caseCase this.value=1thisform.text1.fontname="黑体"case this.value=2thisform.text1.fontname="宋体"case this.value=3thisform.text1.fontname="隶书"case this.value=4thisform.text1.fontname="楷体_GB2312"Endcase6. mand1的Click事件代码:THISFORM.RELEASE注:上述Click事件代码也可以写成:RELEASE THISFORM两种写法的区别在于:THISFORM . RELEASE是调用本表单的RELEASE方法程序,因此,THISFORM后面要加上引用格式中的点号;而RELEASE THISFORM 中的RELEASE是VFP命令,因此,RELEASE后面不需要加上引用格式中的点号。

7.7.保存表单8.8.运行表单【例3】在表单上部设计一个向左移动的字幕(Visual FoxPro 6.0),在下部设计一个数字时钟。

操作步骤如下:1. 1.打开“表单设计器”或“MODIFY FORM……”2. 2.添加两个标签放在合适位置并调整其大小,再添加两个计时器。

(计时器位置任意,在表单执行时见不到计时器)。

3. 3.设置属性:控件名称属性名设置值Form1 Caption 移动字幕和时钟Label1 Caption Visual FoxPro 6.0AutoSize .T.FontSize 18BackStyle 0 &&使之透明Label2 AutoSize .T.FontSize 18Timer1 Interval 200 &&为Label1移动周期Timer2 Interval 1000 &&为Label2刷新周期4. 4.Timer1的Timer事件代码:IF bel1.Left+bel1.Width<0bel1.Left=bel1.WidthELSEbel1.Left=bel1.Left-10ENDIF5. 5.Timer2的Timer事件代码:IF bel2.Caption!=Time()bel2.Caption=Time()ENDIF注:①计时器是一种周期性的按时间间隔自动执行其Timer事件代码的控件,它在应用程序中主要用于处理可能规律的、反复发生的动作。

②在创建计时器时,它的位置可以任意摆放,因为在表单执行时是见不到计时器的,它属于不可见的控件。

③计时器的Interval属性用于设置Timer事件的触发时间间隔,单位为毫秒。

【例4】设计一个密码输入对话框,最多允许输入3次密码。

操作步骤如下:1. 1.打开“表单设计器”或“MODIFY FORM……”2. 2.添加一个标签、一个文本框,及两个命令按钮。

放在合适位置并调整其大小。

3. 3.设置属性:Form1 Caption =DTOC(DATE())&&函数按钮(fx)用于打开表达式生成器,供设置一个表达式,该表达式的值将作为属性值。

对于用表达式设置的属性,在属性值之前会自动插入一个等号(=)。

Label1 Caption password:Text1 PasswordChar *Command1 Caption OKDefault .T. &&按回车键也可以Command2 Caption Cancel4. 4.Form1的Load事件代码:Public II=05. mand1的Click事件代码:i=i+1 &&单击一次Command1就使i加1IF i<=3IF THISFORM.Text1.Value='4321'MESSAGEBOX('Wellcome!') &&在消息框中显示的文本为"Wellcome!"THISFORM.ReleaseELSEMESSAGEBOX('Wrong! Once Again!',3) &&该消息框有3个按钮THISFORM.Text1.Value=''THISFORM.Text1.SetFocus &&调用方法程序SetFocusENDIFELSEMESSAGEBOX('STOP!') &&在消息框中显示的文本为"STOP!"THISFORM.ReleaseENDIF6. mand2的Click事件代码:THISFORM.Release【例5】设计一个有表格的表单,查看学生情况。

操作步骤如下:1. 1.打开“表单设计器”或“MODIFY FORM……”2. 2.添加一个表格和一个命令按钮。

放在合适位置并调整到合适的大小。

3. 3.设置“数据环境”,添入xsda表。

4. 4.设置“表格”的属性:右键单击表格选择“表格生成器”,在“表格生成器”对话框中指定“表格项”、“样式”、“布局”等。

5. 5.“命令按钮”的属性(Caption:退出)、该表单的属性(Caption:学生基本情况表,Autocenter:.T.)6. 6.代码设计:双击“命令按钮”,在“Click”事件过程内键入“RELEASETHISFORM”7.7.保存表单:.SCX文件8.8.运行表单:菜单方法:“程序”→“运行”→注意选定“表单”类型,命令方式:DO FORM……【例6】100到1000之间能被37整除的数操作步骤如下:1. 1.打开“表单设计器”或“MODIFY FORM……”2. 2.添加一个标签、一个编辑框、两个命令按钮。

放在合适位置并调整到合适的大小。

3. 3.设置标签的属性:控件名称属性名设置值Lable1 Caption 100到1000之间能被37整除的数:FontSize 16AutoSize .T.Edit1 FontSize 16Command1 Caption 开始FontSize 12Command2 Caption 关闭FontSize 124. 4.双击“Command1”,在“Click”事件过程内键入:for x=100 to 1000if x%37=0thisform.edit1.value=thisform.edit1.value+str(x,5)+chr(13)endifendfor(注:①以上程序中,chr(13)代表回车符,该行命令代码的功能是每写入一个符合条件的数值,就将编辑框中的文本换一行。

②文本框中的内容可以是文本、数值等多种数据,而编辑框中的内容只能是文本数据。

因此,要用str(x,5)进行转换。

)5. 5.双击“命令按钮2”,在“Click”事件过程内键入“RELEASE THISFORM”6. 6.保存表单:.SCX文件7.7.运行表单:……【例7】设计一个日期与时间表单,只含一个文本框,逐次单击之,即可轮流显示日期或时间。

操作步骤如下:1. 1.在命令窗口执行“MODIFY FORM rqsj”命令;2. 2.从表单控件工具栏中拖入一个文本框,并调整其大小和位置;3. 3.设置各控件属性:控件名称属性名设置值Form1(表单)Caption 日期与时间Text1(文本框)FontSize 28BackStyle 04. 4.编写表单的Load事件代码:PUBLIC i && Load事件在表单装入内存时触发,设置I为公共变量i=.T. && 变量I用于控制轮流显示5. 5.编写文本框的Click事件代码:IF i=.T.Thisform.Text1.Value=DA TE() && 本表单的文本框的值设置为当前日期Thisform.Text1.DateFormat=12 && 日期格式设置为年月日次序Thisform.Text1.DateMark="." && 年月日间隔设置为点号i=.F. && 触发Click事件I值就变反ELSEThisform.Text1.Value=TIME() && 本表单的文本框的值设置为当前时间i=.T. && 触发Click事件I值就变反ENDIF6. 6.保存与运行该表单。

相关主题