如何控制datawindow中一个小单元的底色??

jper 2002-09-30 10:13:43
如果已确定datawindow中一个单元的行号和列名,如何设置该单元的底色??请执教!谢谢!!!
...全文
72 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
balloonman2002 2002-09-30
  • 打赏
  • 举报
回复
ls_colnam=dw_1.Describe( "#指定列号.Name ")
modstring=ls_colnam+ ".Background.Color='"+ls_color_1+ "~t if (getrow()=指定行号,"+ls_color_2+ ", "+ls_color_1+ ")' "
dw_1.Modify(modstring)
这样你指定行列就是ls_color_2色,其他ITEM就是ls_color_1色;
beining 2002-09-30
  • 打赏
  • 举报
回复
dw_name.object.列名[行号].background.color=rgb(128,128,128)//兰色
qqqdong 2002-09-30
  • 打赏
  • 举报
回复
例如改变某一列的颜色
在这列的属性experisons的background.color中
IIF(CurrentRow() = ?,?,?)
ddtid 2002-09-30
  • 打赏
  • 举报
回复
再进一步
可以在该列的backcolor属性里写;if(getrow() = xx,color1,color2)
当然if里面的条件你可以随便写
奇遇 2002-09-30
  • 打赏
  • 举报
回复
以前某贴子的,请参考


问:
我想判断当前光标所在列号,由此使光标所在“单元格”背景色变化一下。
(注意:在datawindow的itemfocuschanged事件中可以用
dw_1.modify(dwo.background.color= "颜色值 ")改变。但是它改变
的是整个列的颜色。现在我要的是使光标所在的单元格改变颜色。)
我所要的是:
1, 光标在某行某列的单元格上时是一种颜色,光标离开此单元格,比如光标移动到左边或右边一列时,原来的单元格恢复本来颜色,而被移动到的一列单元格颜色又改变(注意:此时光标在同一行)
2, 当光标移动到下一行时,同一列之间只能是光表所在单元格变色,其他上下单元格保持原样
---------------------------------------------------------------


答:

喔写了一段代码,经过测试应该没有问题:
在DW的ITEMFOCUSCHANGED事件,注意是ITEMFOCUSCHANGED事件:

//此处声明所用到的相关变量;
long ll_col,ll_pos,ll_cols
string modstring,ls_colnam,ls_color_1,ls_color_2
//此处给两个颜色变量赋值;
ls_color_1=string(RGB(0, 255, 0))
ls_color_2=string(rgb(255,0,0))
//此处获取当前列号和总列数;
ll_col=dw_1.getcolumn()
ll_cols=long(dw_1.Object.DataWindow.Column.Count)
//此处将所有列的BACKGROUND的MODE属性设为不透明;(注:下面两句其实可以放到FORM的OPEN事件或DW的CONSTRUCTOR里面执行,可以提高效率;)
for ll_pos=1 to ll_cols
ls_colnam=dw_1.Describe( "# "+string(ll_pos)+ ".Name ")
dw_1.Modify(ls_colnam+ ".Background.Mode='0' ")
next
//此处将所操作列的Background.Color属性设为带IF判断的表达式,而除此之外的各列的背景表达式均设为恒值;
for ll_pos=1 to ll_cols
ls_colnam=dw_1.Describe( "# "+string(ll_pos)+ ".Name ")
if ll_pos < > ll_col then
modstring=ls_colnam+ ".Background.Color=' "+ls_color_1+ "' "
else
modstring=ls_colnam+ ".Background.Color=' "+ls_color_1+ " ~t if (getrow()=currentrow(), "+ls_color_2+ ", "+ls_color_1+ ")' "
end if
//此处执行背景颜色修改;
dw_1.Modify(modstring)
//刷新显示新的背景颜色;
dw_1.setredraw(true)
next

最后的运行效果是当前ITEM为红色,其他均为绿色。
fjzjr 2002-09-30
  • 打赏
  • 举报
回复
dw_name.modify("datawindow.列名[行号].color=[RED]")试试

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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