VISUAL FOXPRO开发技巧四则

    1.组合框ComboBox的多栏使用
    熟悉VFP的用户都知道ComboBox对象若显示多栏式时,正常选择结果会以第一栏的内容显示在选择项目上。但实际系统设计中要显示多个栏位如图书编号、名称、作者和出版商,而选定的结果及要传递的值则可能是其中的任意一项,此时实现方法如下:
    (1)设定ComboBox对象的属性ColumnCount为4;属性ColumnCountWidth为12,40,12,40;属性RowSourceType为Field;属性RowSource为bookcode,title,writer,publisher。
    (2)设定ComboBox对象的属性BoundColumn为2,表示图书名称为要显示的内容。
    (3)设定ComboBox对象的事件Interactive Change Event的内容如下:
    ThisDisplayValue=ThisValue
    如欲将显示的内容贮存于其他变量,可添加如下内容:
    PublicUnknow_str
    Unknow_str=Thisvalue
    2.PageFrame的刷新记录内容
    在设计对数据库进行查询修改的操作界面时,将其设为PageFrame方式,在ToolsBar条的记录移动按钮触发时,除当前活动页内容更新外,其他页内容并未刷新,极易产生错误操作。解决问题方法如下:
    在ToolsBar中,把涉及到移动记录的Command按钮对象的Click事件作如下添加:
    …
    thisparentparentactivepage=2
    thisparentparentpage2refresh()
    thisparentparentactivepage=3
    thisparentparentpage2refresh()
    …
    thisparentparentactivepage=n
    thisparentparentpage2refresh()
    n——为PageFrame的页数。
    3.任务进度栏的实现
    (1)选择系统菜单“工具”中“选项”条,单击“控件”栏,添加任务进度栏控件MicrosoftProgressBarControl,Version50至ActiveX工具箱中。
    (2)创建表单Form1及Command对象Receive;选定表单控件工具栏中“查看类”,添加控件MicrosoftProgressBarControl,Version50至表单Form1中,设置其属性Max值为1000。
    (3)设置表单Form1中命令按钮Receive事件,Click内容如下:
    fori=1to1000
    forj=1to2000
    j=j+1
    endfor
    thisformolecontrol1value=i
    i=i+1
    endfor
    =messagebox('数据传送与展开完毕,OK!',0+64,'信息窗口')
    thisformrelease
    clear events
    4.Grid模拟Browse窗口
    (1)创建表单Form1及Grid1对象;设定Form1属性BorderStyle为3,可自由调整大小;在事件ResizeEvent中输入如下内容:
    ThisFormGrid1Width=ThisWidth
    ThisFormGrid1Height=ThisHeight
    (2)设定Grid1对象属性RecordSource为当前Form1所设定的工作区,属性Top与Left值均为0;属性Width=ThisformWidth;属性Height=ThisformHeight。(湖北 顾伟义)