一。命令按钮(commandbutton):通常用来完成某些功能,例如确认,撤认,执行,完成等操作。
二。命令按钮组(commandgroup):当一个表单需要多个命令按钮时,可以使用命令按钮组,这样可使事件代码更简洁,界面更加整洁和美观。命令按钮组中各命令按钮的排列方向和位置可根据用户的需要进行调整,操作的步骤如下:
1.单击选中表单中的命令按钮组。
2.右击命令按钮组,在快捷菜单中选择"编辑"命令。
3.选中命令按钮后,根据需要进行相关操作(也可在"属性"窗口的对象选择列表框中直接选择命令按钮组中各个命令按钮)
三。命令按钮(组)的常用属性:见下表:
属性 | 功能 |
caption | 标题文本.含"<"字符,输入该字符可选择该命令按钮 |
picture | 标题图像 |
default | 为.T.时,按回车键可选择此命令按钮 |
cancel | 为.T.时,按esc键可选择此命令按钮 |
value | 命令按钮组中被选中的命令按钮的序号 |
buttoncount | 命令按钮组中的命令按钮的个数 |
四。制作一个表单,添加三个命令按钮command1~command3,练习设置其属性,按图20依次设置其属性
Visual FoxPro基础教程完整版1.选中command1,在"属性"窗口中中选中caption属性,在上方文本框中输入"确定",如图21
2.选中command2,在"属性"窗口中中选中caption属性,在上方文本框中输入"<c取消",如图22,
并将其cancel属性设为。t.,则在运行时,单击该按钮,按C键或按ESC键,均可执行此按钮的click事件代码。
3.选中command3,在"属性"窗口中中双击其picture属性,在弹出的对话框中选择"d:vfp98fox.bmp"即可。
五。例一:将xggz表单(制作方法见本章第二节)中的各个命令按钮换成命令按钮,对比使用方法。
1.打开xggz.scx,将原来的几个命令按钮删除,在原来的位置添加一个命令按钮组,如图23
2.按下表设置命令按钮组commandgroup1的属性:
对象 | 属性名 | 属性值 |
commandgroup1 | buttoncount | 5 |
commandgroup1 | auotsize | .T. |
command1 | caption | 第一个 |
command2 | caption | 上一个 |
command3 | caption | 下一个 |
command4 | caption | 最后一个 |
command5 | caption | 退出 |
3.编写代码:命令按钮组commandgroup1的click事件代码如下:
sel=this.value &&变量sel用于命令按钮组中被选中的命令按钮的序号(即运行时被单击的)
do case
case sel=1
go top
case sel=2
if !bof()
skip -1
endif
case sel=3
if !eof()
skip
endif
case sel=4
go bottom
case sel=5
thisform.release
endcase
thisform.refresh
六。例二:按人员编号增删改"工资情况表的数据
1.设计表单的界面:新建表单→打开数据环境→将"工资情况"表添加到数据环境中→从数据环境中,拖动"工资情况"表的所有字段到表单中,并添加文本框 text1用于输入定位人员的编号,添加"定位"(command1),"追加"(command2)和"删除"(command3)三个命令按钮,界面如图24所示,并将文本框text1的inputmark属性设为99999
2.编写代码:
*"定位"按钮的click事件代码:
bh=alltrim(thisform.text1.value)
jlh=recno()
locate for 编号=bh
if eof()
go jlh
=messagebox("没有找到该编号!")
else
thisform.refresh
endif
*"追加"按钮的click事件代码:
append blank
thisform.refresh
*"删除"按钮的click事件代码:
yn=messagebox("是否要删除?",4+32)
if yn=6
delete
if eof()
go top
else
skip
endif
thisform.refresh
endif
3.可进一步考虑问题:怎样实现在文本框text1中输完编号,回车即进行查找?
可在text1的valid事件加入如下代码:
if !empty(this.value)
thisform.command1.click &&调用命令按钮"查找"(即command1)的click事件代码,进行查找
else
return .f.
endif
Visual FoxPro基础教程完整版