固定某几列不移动
其他列许多列随着水平条的移动而移动
这该怎么设计呢?
------解决方案--------------------
如何能让数据窗口的某几列在其他列横拉时固定不动
int i
if pane = 1 then
i = integer(this.object.datawindow.horizontalscrollposition2)
if i < 1 or isnull(i) then return
if scrollpos > 0 then
this.object.datawindow.horizontalScrollPosition = 0
end if
else
i = integer(this.Object.DataWindow.HorizontalScrollSplit)
if i < 1 or isnull(i) then return
if i > scrollpos then
this.object.datawindow.horizontalScrollPosition2 = i
end if
end if
------解决方案--------------------
不管你有几列,你想在那列前面分栏显示,就取得该列的位置,然后设置即可
string ls_colx
ls_colx = dw_1.object.列名.x
dw_1.Object.datawindow.horizontalscrollsplit = integer(ls_colx)
------解决方案--------------------
兄弟啊,服了你了,上边这么说都不明白,再解释下:
int li_colx
this.hsplitscroll=true
ls_colx = integer(this.object.列名.x) + integer(this.object.列名.width)
this.Object.datawindow.horizontalscrollsplit = li_colx
把上边这段代码复制你的某一个数据窗口控件的‘constructor’事件里边,‘列名’这两个汉字用你的数据窗口对象的列名代替,比如xxx或yyy,这看你自己的需要了,效果和excel里边的锁定窗格很相似。
还不放心,干脆举例吧:
比如,你想固定前三列,而你的第三列叫xxx,那么就写成
int li_colx
this.hsplitscroll=true
ls_colx = integer(this.object.xxx.x) + integer(this.object.xxx.width)
this.Object.datawindow.horizontalscrollsplit = li_colx
想固定前四列,就用第四列的列名
其实这段代码不是非要放在‘constructor’事件里边的,写成函数需要的时候调用也可以,只是想让你先看一下效果,有个直观的认识。
如果你还不明白,我就只有跳楼了:(。
耽误了我5分钟睡觉时间,可不能不给分啊