aardio 文档

aardio 范例: checklist 与 listview 复选框

import win.ui;
/*DSG{{*/
var winform = win.form(text="checklist 与 listview 复选框";right=688;bottom=480;max=false)
winform.add(
checklist={cls="checklist";left=20;top=45;right=666;bottom=156;bgcolor=0xFFFFFF;edge=1;items={};z=1};
listview={cls="listview";left=22;top=193;right=668;bottom=306;bgcolor=0xFFFFFF;edge=1;z=3};
listview2={cls="listview";left=23;top=341;right=669;bottom=454;bgcolor=0xFFFFFF;edge=1;z=5};
static={cls="static";text="checklist 控件(继承自 listview ):";left=22;top=21;right=268;bottom=45;transparent=1;z=2};
static2={cls="static";text="普通 listview,启用 checkbox 属性:";left=24;top=169;right=270;bottom=193;transparent=1;z=4};
static3={cls="static";text="普通 listview,在任意列模拟复选框:";left=25;top=317;right=271;bottom=341;transparent=1;z=6}
)
/*}}*/

// -------- checklist 控件 -------- 

//checklist 控件继承了 listview 的所有属性与方法
winform.checklist.items = [["测试项目"],["测试项目2"],["测试项目3"]] //二维数组
winform.checklist.addItem("测试项目4")  

//项目勾选状态变更触发此事件
winform.checklist.onCheckedChanged = function(checked,item){
    if(checked){
        winform.static.text = "选中:" + item;
    }
    else {
        winform.static.text = "取消选中:" + item;
    } 
}

// -------- listview 启用自带复选框(第一列) --------

//启用复选框
winform.listview.checkbox = true;

winform.listview.columns = [ 
    ["复选框",100],
    ["标题",-1/*自适应宽度*/]//自适应列宽度更简单的方法是将列宽度指定为 -1 就可以了
]

winform.listview.items = [["测试项目","标题一"],["测试项目2","标题二"]] //二维数组

// -------- listview 模拟带复选框(任意列) --------

winform.listview2.columns = [ 
    ["标题",-1/*自适应宽度*/],
    ["复选框",100,2/*_LVCFMT_CENTER*/],//第二列开始可以使用_LVCFMT_CENTER居中
]

winform.listview2.items = [["测试项目","⬛"],["测试项目2","☑"]] //二维数组

//listview 单击事件
winform.listview2.onClick = function(item,subItem,nmListView){ 

    if(subItem==2){
        /*
        如果没有启用选中整行,则不是点击第一列时 item 为 0。
        我们可以改用 hitTest 获取实际点击的行号与列号。
        */
        var row,col = winform.listview2.hitTest()

        var text = winform.listview2.getItemText(row,col);  

        //模拟复选框:我们让复选框显示在了 listview 的最右侧
        winform.listview2.setItemText(text=="⬛" ? "☑" :"⬛",row,col); 
    }
}

winform.show() 
win.loopMessage();
Markdown 格式