关于Spread单元格颜色的获取问题
我遇到下面问题:我现在做的项目的更新功能需要进行Check,Check分两种,一是需要每行的的CheckBox框选中,另一个就是我遇到的问题。请看以下代码:
Dim sCLr As Drawing.Color
sCLr = FpSpread.Sheet(0).Cells(iRow - 1, 0 ).BlackColor
If sCLr = Drawing.Color.FromArgb(COLOR_EDIT)Then
......
End If
其中,在另一段代码中已经将 FpSpread.Sheet(0).Cells(iRow - 1, 0 ).BlackColor设置为Drawing.Color.FromArgb(COLOR_EDIT),但现在遇到的问题就是sCLr = Drawing.Color.FromArgb(COLOR_EDIT) 这句代码始终不等。我DeBug过后发现sCLr取到的值大致是 Name={ffffffff},ARGB={255,128,255,255},而Drawing.Color.FromArgb(COLOR_EDIT)取到的值却是Name={N0fffffff},ARGB={0,128,255,255}。
我现在十分不解,希望哪位大大能够给予解答! 补充说明,使用的是spread for asp.net8.0 + VS2013 ,环境是Win7,浏览器是IE11 这应该是其他地方充了你的设置。你看看前端是不是有其他css样式设置冲了你对于backcolor的设置?
你在IE里debug一下,看看后台设置的颜色值,在前台是不是一致? 我对这段代码再次进行了DeBug,Spread单元格初始的颜色值ARGB={255,255,255,255},在执行FpSpread.Sheet(0).Cells(iRow - 1, 0 ).BlackColor=Drawing.Color.FromArgb(COLOR_EDIT)后,颜色值ARGB变成{255,128,255,255},而Drawing.Color.FromArgb(COLOR_EDIT)的ARGB值是{0,128,255,255}。我现在怀疑是不是FpSpread.Sheet(0).Cells(iRow - 1, 0 ).BlackColor并不支持ARGB模式,Drawing.Color.FromArgb(COLOR_EDIT)则是ARGB模式,我在IE浏览中的确发现颜色改变了,但是因为两者模式不同,所以,始终无法相等。还请能够给与解答! 是这样。目前验证的结果是不管设置什么颜色给Cell的backcolor,backcolor都会把alpha值改成255. 具体原因还不确定,不过你可以尝试这样解决。
用三个参数的方法,不设置alpha值。
Drawing.Color.FromArgb(128,255,255) 我这边是将COLOR_EDIT设置成公共的,具体写法是 pubilic COLOR_EDIT AS Integer = &H80FFFF。也就是我这个公共参数不再使用了,是吧? 用的话,也可以。就是判断的时候,去判断rgb值是否相等,忽略a。
IF sCLr .R = Color.R 多谢解答,我的问题解决了,按照您给的方法,直接只设置3个参数,可以进行判断了 哇,这么久了,你还记得我们,还给我们招呼一声。感动的不要不要的~
页:
[1]