给listview每行加上复选框
By
admin
at 2017-11-19 • 1人收藏 • 2180人看过
listview加上复选框之后,如果只是两列,那么就是checkview了吧.
于是,去checkview里查看它实现的代码.
//checklist 复选列表框 import win.ui.ctrl.listview; namespace win.ui.ctrl; var listview = ..win.ui.ctrl.listview; class checklist{ ctor(parent,tParam){ if( tParam ){ tParam.cls = "SysListView32"; tParam.style |= 3/*_LVS_LIST*/ | 0x4000 /*_LVS_NOCOLUMNHEADER*/ if(tParam.edge) tParam.exstyle |= 0x200/*_WS_EX_CLIENTEDGE*/; } } onCreate = function(){ this.setExtended(0x4/*_LVS_EX_CHECKBOXES*/) } @_metaProperty; } checklist._metaProperty = listview._metaProperty; /**intellisense() ?win.ui.ctrl.checklist =!listview. win.ui.ctrl.checklist() = 复选列表框\n!listview. end intellisense**/
以上就是在listview基础上实现的checkview的程序,里面还是listview的属性,只是在
onCreate = function(){ this.setExtended(0x4/*_LVS_EX_CHECKBOXES*/) }
增加了这个属性,那么我们就可以以此类推.实现listview每行增加一个多选框
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio Form";right=349;bottom=266;parent=...) winform.add( button={cls="button";text="全部勾选";left=133;top=213;right=208;bottom=244;z=3}; listview={cls="listview";left=37;top=36;right=303;bottom=207;asel=false;bgcolor=16777215;dl=1;dr=1;edge=1;font=LOGFONT(name='SimSun');fullRow=1;gridLines=1;msel=1;z=1}; static={cls="static";text="请使用鼠标左键、鼠标右键点击列表项";left=68;top=11;right=303;bottom=29;transparent=1;z=2} ) /*}}*/ winform.button.oncommand = function(id,event){ if winform.button.text="全部勾选" { winform.button.text="全部取消" for (i=1;winform.listview.count;1) { winform.listview.setChecked(i) } }else{ winform.button.text="全部勾选" for (i=1;winform.listview.count;1) { winform.listview.setChecked(i,false) } } } winform.listview.onnotify = function(id,code,ptr){ select(code) { case 0xFFFFFFFE/*_NM_CLICK*/{ var nm = winform.listview.getNotifyMessage(code,ptr) if( ! nm.iItem ) return ; winform.listview.setChecked(nm.iItem,!winform.listview.getChecked(nm.iItem) ) } } } //自适应列宽度 winform.listview.adjust = function(cx,cy){ winform.listview.fillParent(/*列序号*/); } winform.listview.insertColumn("姓 名",80,,0x2/*_LVCFMT_CENTER*/) winform.listview.insertColumn("电话号码",300,,0x2/*_LVCFMT_CENTER*/) winform.listview.setExtended(0x4/*_LVS_EX_CHECKBOXES*/); winform.listview.addItem( { text={"王永工";"13176768888"} } ) winform.listview.addItem("") winform.listview.addItem( { text={"冯有祥";"第三行内容"} } ) winform.listview.setItemText( { "刘光明";"第二行内容" },2); winform.show() win.loopMessage();
以上代码中主要看
winform.listview.setExtended(0x4/*_LVS_EX_CHECKBOXES*/);
这句就可以实现添加复选框.
可是??
表头中怎么实现复选框啊??
1 个回复 | 最后更新于 2017-11-19
登录后方可回帖
利用htmlayout实现listview的icon功能:
引用自:http://bbs.aardio.com/forum.php?mod=viewthread&tid=12662&highlight=listview