程序员人生 网站导航

VFP基础教程 5.6 命令按钮和命令按钮组

栏目:FoxPro时间:2014-01-28 15:41:52

    一。命令按钮(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的属性:

对象属性名属性值
commandgroup1buttoncount5
commandgroup1auotsize.T.
command1caption第一个
command2caption上一个
command3caption下一个
command4caption最后一个
command5caption退出

    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基础教程完整版
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐