您的位置:首页 > 其它

如何使鼠标单击ITEM单元格时黑色选中色变为其他颜色?

2008-04-28 02:03 309 查看
如何使鼠标单击ITEM单元格时黑色选中色变为其他颜色?

问题描述:

如何使鼠标单击ITEM单元格(TABORDER为0)时黑色选中色变为其他颜色?

解决方案:

1、首先将DW属性中的COLUMNMOVING和MOUSESELECTION两项取消选中;

2、在DW的CLICKED事件中写代码:

//此处声明所用到的相关变量;

long ll_curcol,ll_pos,ll_cols

string ls_modstring,ls_colname,ls_color_1,ls_color_2,ls_curcol

ifrow=0thenreturn

//此处给两个颜色变量赋值;

ls_color_1=string(rgb(255,255,255))

ls_color_2=string(15780518)//此处设置选中单元格为SKY天蓝色

//此处获取当前列号和总列数;

//ll_curcol=dw_1.getcolumn()

ls_curcol=left(dw_1.GetObjectAtPointer(),pos(dw_1.GetObjectAtPointer(),"~t")-1)

ll_cols=long(dw_1.Object.DataWindow.Column.Count)

//此处将所有列的BACKGROUND的MODE属性设为不透明;(注:下面两句其实可以放到FORM的OPEN事件或DW的CONSTRUCTOR里面执行,可以提高效率;)

dw_1.setredraw(false)

for ll_pos=1 to ll_cols

ls_colname=dw_1.Describe("#"+string(ll_pos)+".Name")

dw_1.Modify(ls_colname+".Background.Mode='0'")

next

//此处将所操作列的Background.Color属性设为带IF判断的表达式,而除此之外的各列的背景表达式均设为恒值;

for ll_pos=1 to ll_cols

ls_colname=dw_1.Describe("#"+string(ll_pos)+".Name")

//if ll_pos<> ll_curcol then

if ls_colname<>ls_curcolthen

ls_modstring=ls_colname+".Background.Color='"+ls_color_1+"'"

else

ls_modstring=ls_colname+".Background.Color='"+ls_color_1+" ~t if (getrow()=currentrow(),"+ls_color_2+","+ls_color_1+")'"

end if

//此处执行背景颜色修改;

dw_1.Modify(ls_modstring)

next

//刷新显示新的背景颜色;

dw_1.setredraw(true)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐