Visual Foxpro开发技巧四则 顾伟义 1998年 第05期 12版 #1  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对象的事件InteractiveChange Event的内容如下:   This.DisplayValue=This.Value   如欲将显示的内容贮存于其他变量,可添加如下内容:   Public Unknow_str   Unknow_str=This.value #1  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的页数。 #1  3.任务进度栏的实现   (1)选择系统菜单“工具”中“选项”条,单击“控件”栏,添加任务进度栏控件Microsoft ProgressBar Control,Version5.0至ActiveX工具箱中。   (2)创建表单Form1及Command对象Receive;选定表单控件工具栏中“查看类”,添加控件Microsoft ProgressBar Control,Version5.0至表单Form1中,设置其属性Max值为1000。   (3)设置表单Form1中命令按钮Receive事件,Click内容如下:   for i=1 to 1000   for j=1 to 2000   j=j+1   endfor   thisform.olecontrol1.value=i   i=i+1   endfor   =messagebox('数据传送与展开完毕,OK!',0+64,'信息窗口')   thisform.release   clear events #1  4.Grid模拟Browse窗口   (1)创建表单Form1及Grid1对象;设定Form1属性BorderStyle为3,可自由调整大小;在事件Resize Event中输入如下内容:   ThisForm.Grid1.Width=This.Width   ThisForm.Grid1.Height=This.Height   (2)设定Grid1对象属性RecordSource为当前Form1所设定的工作区,属性Top与Left值均为0;属性Width=Thisform.Width;属性Height=Thisform.Height。