虚表 —— 始终显示垂直滚动条
当列表项目数量变化时,列表框会自动显示或隐藏滚动条,这样可能会导致自动调整列宽、横向滚动条等的变化,在某些特定场合或要求下,会出现非常不好的使用体验。
应网友需求,特增加始终显示垂直滚动条功能,不管项目多少,列表框外观始终保持一致,以避免出现上述现象。
满满的黑科技,全网首发,早用早体验。
v5.1 增加 showVScroll() 函数,可以设置是否总是显示垂直滚动条。
v5.2 优化 showVScroll() 函数,可同时适配多个虚表组件。
正常无滚动条时的样子(注意最后一列):
import win.ui; import godking.vlistEx; /*DSG{{*/ mainForm = win.form(text="vlistEx - table adapter";right=591;bottom=487) mainForm.add( vlist={cls="vlistEx";left=8;top=8;right=584;bottom=480;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=1} ) /*}}*/ //======================= 创建虚表 ======================= var t = { fields={"序号","姓名","年龄","地址","身份证"} }; for(i=1;10;1){ var tt={}; tt["序号"]="[@rowindex]"; // 行序号标记是不允许编辑修改的 tt["姓名"]=math.random(1000,9999)+"姓名"; tt["年龄"]=math.random(10,99); tt["地址"]=math.random(1000,9999)+"地址"; tt["身份证"]=math.random(1000,9999)+"身份证"; ..table.push(t,tt); } mainForm.vlist.setTable(t,,{80,100,100,100,-1},1); //======================= 功能演示 ======================= mainForm.vlist.showVScroll(true); mainForm.show(); win.loopMessage();
可同时适配多个虚表组件,并分别使用不同的设置:
import win.ui; import godking.vlistEx; /*DSG{{*/ mainForm = win.form(text="vlistEx - table adapter";right=1183;bottom=791) mainForm.add( vlist={cls="vlistEx";left=8;top=8;right=584;bottom=392;db=0.51;dl=0.01;dr=0.51;dt=0.01;edge=1;transparent=1;z=1}; vlistEx={cls="vlistEx";left=600;top=8;right=1176;bottom=392;db=0.51;dl=0.51;dr=0.01;dt=0.01;edge=1;transparent=1;z=2}; vlistEx2={cls="vlistEx";left=8;top=400;right=584;bottom=784;db=0.01;dl=0.01;dr=0.51;dt=0.51;edge=1;transparent=1;z=3}; vlistEx3={cls="vlistEx";left=600;top=400;right=1176;bottom=784;db=0.01;dl=0.51;dr=0.01;dt=0.51;edge=1;transparent=1;z=4} ) /*}}*/ var t = { fields={"序号","姓名","年龄","地址","身份证"} }; for(i=1;10;1){ var tt={}; tt["序号"]="[@rowindex]"; // 行序号标记是不允许编辑修改的 tt["姓名"]=math.random(1000,9999)+"姓名"; tt["年龄"]=math.random(10,99); tt["地址"]=math.random(1000,9999)+"地址"; tt["身份证"]=math.random(1000,9999)+"身份证"; ..table.push(t,tt); } mainForm.vlist.setTable(t,,{79,100,100,100,100},0x1); mainForm.vlist.fillParent(); mainForm.vlist.showVScroll(true); mainForm.vlistEx.setTable(t,,{79,100,100,100,100},0x1); mainForm.vlistEx.fillParent(); //mainForm.vlistEx.showVScroll(true); mainForm.vlistEx2.setTable(t,,{79,100,100,100,100},0x1); mainForm.vlistEx2.fillParent(); //mainForm.vlistEx2.showVScroll(true); mainForm.vlistEx3.setTable(t,,{79,100,100,100,100},0x1); mainForm.vlistEx3.fillParent(); mainForm.vlistEx3.showVScroll(true); mainForm.show(); win.loopMessage();