Visual FoxPro使用技巧 1．给页框架（Pageframe）的标题加背景颜色 一般给页框架的各个页面加背景颜色时，总是页框架的标题（头部）加不上去，这时可将页框架"Pageframe"的"Tabs"特性改为．F.，然后将各个Page分别加人所需背景颜色，再把"Tabs"特性改为．T．即可。 2．显示符合条件的记录数 在进行查询或记录筛选时，要返回符合条件的记录数，可用下面代码：
Public aao＆＆定义变量
Count to aao＆＆符合条件的记录数赋给变量
Thisform． Text1． Value＝ aao＆＆在文本框中显示出记录数

3．网格（Grid）的使用
（1）在网格中交替显示颜色
记录号有序排列时，可以在网格的列中交替显示白色和灰色的记录，代码如下：
Thisform．Gridl．SetAll（"DynamicBackColor"，"IIF（MOD（RECNO（），2）＝0，RGB（255，　255，　255），　RGB（ 192，192，192））"，"Column"，＆＆交替显示白色和绿色的记录
（2）符合条件的记录显示颜色
进行查询时，想在网格中动态地显示符合条件的记录的颜色，可以充分利用"DynamicBackColor"和"DynamicForeColor"特性。下例将符合条件的记录的字体变为红色Thisform．Grid1．Column1．DynamicForeColor＝"IIf（Database．Category_ID＝'A02'，RGB（225，0，0），RGB（0，0，124））"

4．将自定义的对象加入到窗体上
（1）先建立所需的类。
（2）登记类库。在"Options"对话框的"Classes"单中加人类库或在"View Classes"中加人类库。以在"Form DeSigner"中登记类库为例，其方法为：在工具栏中选择"Views Classes"按钮；从子选单中选"Add"；在"Open"对话框中选一类库加人到Control工具栏并选"Open"；重复以上过程，直到加人完所要登记的库。此时类库就可显示到控件工具栏。
（3）将对象从类库中加人到窗体。
一旦加入了类库，就可在"Form Designer"中访问它们。其方法如下：在 Controll具栏中，选择"View Classes"按钮；从登记为类库列表中，选择包含希望加人到窗体中的控件的库，工具栏中包括所选库中的控件；点击希望的控件，并将其拖到窗体中。

5．组合框Combobox的使用
（1）组合框内要显示多列，可改变"ColumnCount"特性，但此时若不设置列宽度，将仅显示第一列。可以通过逗号分隔的清单列来指定列宽。如：用"10，50，100"设置三列宽度。
（2）想让用户每次查找时输人一个字母，把"Incrementalsearch特性设置为True，运行时，当用户输人一个字母时，高亮条将移列表中第一个字母和输人字母相匹配的第一条目上。
（3）将输入内容加人到下拉列表中，可在组合框的Valid事件中加人This．Additem（This．Displayvalue）代码。

6．PageFrame的刷新记录内容
在设计对数据库进行查询修改的操作界面时，将其设为"PageFrame"方式，在TOolsBar条的记录移动按钮触发时，除当前活动页内容更新外，其它页内容并未刷新，极易产生错误操作。解决问题方法如下：
在TOolsBar中，把涉及到移动记录的"Command"按钮对象的"CliCk"事件作如下添加：
this．P3I'rtst p81WSL SCtlVVpVgV＝2
this． parent． parent． pageZ． refrsh（）
this． PSSllt． Pllllllt． llCtIVVPVgV＝ 3
this．parent．pa。nt．pageZ．refresh（）
this．pSSm．pllrem．llCllVVpVgV＝fi
this．parent．p。nt．pageZ，refresh（）
其中　n为　PapeFrame的页数。

7．任务进度栏的实现
（l）选择系统菜单"工具"中"选项"条，单击"控件"栏，添加任务进度栏控件MIC。SOft progreSSB。Y COntrolVe'IOn 5．0至 ACtiVeXlllR箱中。
（）创建表单"Forml及CDmmand对象Receive；选定表单控件工具栏中"查看类"，添加控件"MicrosoftProgpessBar Control Version 5．0至表单"Forml"中，设置其属性"Max"值为1000。
（3）设置表单"FO。l"中命令按钮"ReCetVe"事件，CIiCk"内容如下：
for i＝ ito 1000
for］＝ ito 2000
j＝j＋l
endfor
this：IDllYll． O16CODtrol． V8lll6＝1
i＝i＋l
endfor
＝ messagebox数据传送与展开完毕， OK！"， 0＋ 64，"信息窗口"）
thisform．release
clear events

8．Grid模拟Browse窗口
（1）创建表单"FO。l"及"Gridl"对象；设定"FO。l属性"BOtdeYStyle"为3，可自由调整大小；在事件"R6siZeEvent"中输人如下内容：
ThisForm．Gridl．Width＝This．Width
ThisForm．Gridl．Heisht＝This．Heigh
（2）设定"Gridl"对象属性Recordsource为当前Forml"所设定的工作区，属性"Top"与"Left"值均为 0；属性"Width＝ Thisform．　Width；属性Heisht＝ This－hfm．＊e吧hi D

9．灵活运用信息对话框
几乎所有的操作系统与应用软件都含有大量的类似"警告"、"提示"等信息对话框。运用信息对话框，可以灵活、及时的提示或警告用户，使用户界面友好。
信息对话框的语法是：
MESSAGEBOX（cMess。geTex且，nDId。gB。x灼Pe，cTI－tleBarText）
cMessageText：指定信息框显示的文本，可用chr（l）分行。
nDialogBoxType；指定显示的按钮和图标。它的具体使用规范如下：
cTitleBarText：指定标题文本。
下面试举一例说明：
（1）在"Form"（窗体）上加控件"TextBox"（文本框），设置 TextBox． Maxlength＝ 4。这样在输人 4位数字后，TextB。X自动LOOtF。Clls（失去焦点）。
（2）双击该"TextBox，编辑Textl．LostFocus事件程序如下：
if val（this． value）＞　1998＆＆函数 val（）使字符量转成数字量
=messagebox（对不起！＋ chr（ 13）＋"您的代码超出范围"，　l＋ 48，"错误信息"）
endif
这样在"TeXtBOX"中输人的 4位数字大于　1998时，就会自动弹出对话框进行提示。

10．COinboBOX（组合框）的选择性输出
控件ComboBox综合了TextBox（文本框）和ListBox（列表框）的特性，可显示一列项目。但要在ComboBox中对Table（表）中的某个Field（字段）的内容进行选择性输出却较为困难。现利用FoxPro的Query，举出一种解决办法：
（1）设置"COmbOI"的Style属性为"2－Dropdown List"（下拉列表框）。
（2）设置"Combo1．Rowsourcetype"为"4－Query（．QPR）"查询文件。
（3）设置"Combo1．Rowsource"为符合要求的查询文　件。
如：Select Sinfor．name　＆＆选择表中的字段
From Database！Sinfor　＆＆标明表所在的数据库
Where Sinfor．name IN（"工"）
OR（Sinfor．name IN（"李"））
这样便能在数据库Database中的表Sinfor的字段name中找出姓王和姓李的名字，并在ComboBox中输出。此外，查询文件可利用Foxpro的Query自动生成。

11．自己的软件用自己的图标
（1）用Imagedit或其它软件创建自己的图标文件（．ICO），或者拷贝原有的目标文件。
（2）在项目管理中，单击鼠标右键，在打开的右键菜单中，单击"项目信息"。
（3）打开信息窗，选定"项目"页，在"．EXE文件中附加图标"选择框中打上"√"，按"图标"按钮，选定自己的图标文件，单击"确定"按钮返回。

12．屏蔽Wizstyle类中不必要的组件
在Form中插人的Wizstyle类，其中有些组件并非本Form所必需的，例如图形按钮组中的"打印"按钮等，但这些组件又不能删除，一般可按如下方法将其屏蔽：
（l）选中按钮对象，在其上单击鼠标右键，选右键菜　单中的"编辑"，使按钮组处于编辑状态。
（2）选中要屏蔽的组件，如"打印"按钮，打开属性窗　口。
（3）将"布局"页中的"Height"、"Width"属性值设为"0"，"Visible"属性值设为". F．"。
（4）将"其它"页中的"Enabled"、"Tabstop"属性都设　为".F."。

13．重用Form
软件开发过程中，如果有一组Form从结构上讲是相　同的，那么就可以考虑Form重用。
（1）定制通用（标准）Form，将Form中的个性化部分，如标题、数据处理及文件管理程序等，分别用变量赋值的方法加以定义。
（2）打开Form级属性，选"方法"页，在"Load Event"中编写Form级变量赋值及控制程序，在"Activate Event"中编写Form中的对象级变量赋值及控制程序。
（3）项目中添加调用Form的程序，分别给通用（标准）Form中的变量赋予不同的值，以实现重用通用（标准）Form生成特定的Form，完成相应的功能。
（4）数据的传递一般可通过．MEM文件进行，用Save及Restore命令完成对文件的操作。
（阿布）