如何使鼠標(biāo)單擊ITEM單元格時黑色選中色變?yōu)槠渌伾浚ㄔ瓌?chuàng))
2024-07-21 02:06:03
供稿:網(wǎng)友
如何使鼠標(biāo)單擊item單元格時黑色選中色變?yōu)槠渌伾?br>
問題描述:
如何使鼠標(biāo)單擊item單元格(tab order為0)時黑色選中色變?yōu)槠渌伾?br>
解決方案:
1、首先將dw屬性中的column moving 和mouse selection兩項(xiàng)取消選中;
2、在dw的clicked事件中寫代碼:
//此處聲明所用到的相關(guān)變量;
long ll_curcol,ll_pos,ll_cols
string ls_modstring,ls_colname,ls_color_1,ls_color_2,ls_curcol
if row = 0 then return
//此處給兩個顏色變量賦值;
ls_color_1 = string(rgb(255,255,255))
ls_color_2 = string(15780518) //此處設(shè)置選中單元格為sky天藍(lán)色
//此處獲取當(dāng)前列號和總列數(shù);
//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屬性設(shè)為不透明;(注:下面兩句其實(shí)可以放到form的open事件或dw的constructor里面執(zhí)行,可以提高效率;)
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屬性設(shè)為帶if判斷的表達(dá)式,而除此之外的各列的背景表達(dá)式均設(shè)為恒值;
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_curcol then
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
//此處執(zhí)行背景顏色修改;
dw_1.modify(ls_modstring)
next
//刷新顯示新的背景顏色;
dw_1.setredraw(true)