请问如下在VFP 9.0中控制Grid中某一单元格?

renchao 2006-08-26 01:56:21
请问如下在VFP 9.0中控制Grid中某一单元格?

比如想让某一单位格的背景颜色为红色,而其它为白色,
请问改如何操作啊?

谢谢!
...全文
725 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
houzhaobo 2006-10-07
  • 打赏
  • 举报
回复
大狭 就是大狭!
huijcbit 2006-08-26
  • 打赏
  • 举报
回复
学习.
TERRYYRRET 2006-08-26
  • 打赏
  • 举报
回复
up一下
十豆三 2006-08-26
  • 打赏
  • 举报
回复
例子太多了,你参考吧
十豆三 2006-08-26
  • 打赏
  • 举报
回复
1 动态改变GIRD表格的底色
在表单中添加一自定义属性 rec 在表格的 init 中这样写 this.SetAll("dynamicforecolor","IIF(recno()=thisform.rec, RGB(255,0,0), RGB (0,0,0))", "Column") 在表格的 afterrowcolchange 中写 LPARAMETERS nColIndex thisform.rec = recno() thisform.refresh 假定你的表格上有一个按钮,原来的代码是 skip 你在添加两行,使它成为这样 skip thisform.rec = recno() thisform.refresh
-----------------
2动态改变GIRD表格的底色

在表单中添加一自定义属性 rec

在表格的 init 中这样写
this.SetAll("dynamicforecolor","IIF(recno()=thisform.rec, RGB(255,0,0), RGB(0,0,0))", "Column")

在表格的 afterrowcolchange 中写
LPARAMETERS nColIndex
thisform.rec = recno()
thisform.refresh

假定你的表格上有一个按钮,原来的代码是
skip

你在添加两行,使它成为这样
skip
thisform.rec = recno()
thisform.refresh

高亮度显示表格中失去焦点的行

最后检查日期: October 17, 1996
文号: Q139090
--------------------------------------------------------------------------------

本文信息应用于:

Microsoft Visual FoxPro for Windows, versions 3.0, 5.0

--------------------------------------------------------------------------------

概述
当焦点从表格移开时, 要确定表格中选定的记录是困难的 . 高亮显示该记录将为用户提供一个可视化的提示. 这可以由本文中演示的用 When 和 Valid 事件来完成.

更多信息
逐步演示
以下步骤演示如何在表格失去焦后高亮显示选定的记录. 代码将在你离开表格时在选定的记录上产生一个红色的高亮显示.

创建一个新表单, 并从 Samples\\Data\\Testdata.dbc 中添加 Customer 和 Orders 表到表单的数据环境.
从数据环境中的 Customer 表中拖动 Company 字段到表单上. 这会创建一个文本框并自动设置它的 ControlSource 属性为 Company.
从数据环境拖动 Orders 表到表单上来创建一个表格这会自动设置它的 RecordSource 属性为 Orders.
在表格的 Valid 事件中, 放入以下代码打开高亮显示:
This.SetAll("DynamicBackColor",STR(RGB(255,0,0)),"Column")

在表格的 When 事件中, 放入以下代码关闭高亮显示:
This.SetAll("DynamicBackColor",STR(RGB(255,255,255)),"Column")

如果你使用了定位按钮, 添加以下代码到表格的 ReFresh 方法中:
This.SetAll("DynamicBackColor",STR(RGB(255,255,255)),"Column")

保存并运行表单.
当用户从表格中单击 Company 文本框时, 红色的高亮将显示 . 单击表格时移去高亮度. 如果你使用定位按钮 , 当你单击其中一个时, 高亮度也会移去.


十豆三 2006-08-26
  • 打赏
  • 举报
回复
现有表ABC
A B C
00010 学生 二
00011 学生 一
00013 学生 一
00014 工人 四

满足ALLT(B)='学生' C的背景动态改变颜色

现有表单FORM1
FORM1上有表格grid1一个退出按钮.


FORM1.INIT
SELE "ABC"
grid1.RECORDSOURCE="ABC"
grid1.SetAll("DynamicBackColor", "IIF(ALLT(B)='学生',RGB(230,230,230),RGB(255,255,255))")

一切正常
但这样改变了整行的颜色

但只想改变ABC.C的颜色
---------------------------------------------------------------

thisform.grid1.column3.DynamicBackColor=之后的内容用双引号括起来。即:

FORM1.INIT
SELE "ABC"
grid1.RECORDSOURCE="ABC"
thisform.grid1.column3.DynamicBackColor="IIF(ALLT(字段名)='学生',RGB(230,230,230),RGB(255,255,255))"
十豆三 2006-08-26
  • 打赏
  • 举报
回复
6.0-9.0均可以,请参考:

2、设置多种颜色(无规律性)----------

主要是针对一个表GRID里,当记录很多时,而且某些记录具有特定的属性时,我们需要设置颜色来区分这些数据,如下代码可以在刷新或初始化表单时,设置其属性。

thisform.Grid1.SetAll("DynamicBackColor","IIF(type>=1,iif(type>=2,iif(type>=3,rgb(0,128,0),rgb(192,192,192)),rgb(255,0,0)),rgb(255,255,255))")

如上代码可以说明,如果某记录中有一个字段type,那么根据这个字段的数据值,可以显示不同颜色,可以转换成如下公式:

iif(条件1,iif(条件2,iif(条件3,iif(条件4,iif(条件5,[…iif(条件N,颜色N,颜色n-1)…,]颜色5,颜色4),颜色3),颜色2),颜色1),其他颜色)


3、设置多种颜色(有规律性)----------

这种就比较简单了,一般是在看较多记录时,多了让人眼花缭乱,所以每隔一行设置颜色,就是

thisform.Grid1.SetAll("DynamicBackColor", "IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255) , RGB(0,255,0))", "Column")


4、在表格控件中,当第几列(下面例子为第一列,即Column1)的值等于零时,如何使当前单元格数字变为红色

在GRID的 INIT 事件中加代码:

ThisForm.Grid1.Column1.DynamicForeColor='IIF(字段名=0,RGB(255,0,0),This.ForeColor)'

Column1 为字段名所在列。(同理可做背景色)


5、在表格控件中,当某列的值等于零时,如何使当前行字变为红色

ThisForm.Grid1.SetAll("DynamicForeColor", "IIF(字段名= 0, RGB(255,0,0),This.ForeColor)", "Column")

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧