虚表 —— 选择框状态被改变事件演示

光庆 1天前 116

新版本添加了 onChecked 事件函数,请下载最新版本。

import win.ui;
import godking.vlistEx;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=607;bottom=319;border="thin")
mainForm.add(
checkbox={cls="checkbox";text="启用单选模式";left=16;top=272;right=128;bottom=304;z=2};
listview={cls="vlistEx";left=16;top=24;right=595;bottom=264;edge=1;z=1}
)
/*}}*/
mainForm.listview.setColumns("选择框选择模式演示")
var t = { {"火影"}, {"鸣人"}, {"我爱罗"}, {"罗玉凤"}, {"哈哈哈"}, {"张玉凤"}}
mainForm.listview.setTable(t,false);
mainForm.listview.checkBox.show = true;

mainForm.checkbox.oncommand = function(id,event){
    mainForm.listview.singleCheckedMode = mainForm.checkbox.checked;
    mainForm.listview.setChecked();
}

mainForm.listview.onChecked = function(row,status,newStatus){
    if row===2{
        ..win.msgbox("第2行不能通过【鼠标点击】改变选择状态");
        return true; 
    }
    if ..string.find(mainForm.listview.getCellText(row,1),"@玉凤"){
        ..win.msgbox("带【玉凤】的都不能通过【鼠标点击】改变选择状态");
        return true; 
    }
}

mainForm.listview.onDrawCellEnd = function(row,col,hdc,rect,bkcolor,text,font,colalign){
        // 给不允许选择的框内填充上颜色,做个记号。
	if col===1 {
    	if row===2 or ..string.find(text,"@玉凤"){
        	..gdi.fillRect(hdc,0xBBBBFF,::RECT(rect.left+6*owner.dpi,rect.top+8*owner.dpi,rect.left+16*owner.dpi,rect.top+18*owner.dpi));
    	}    
    }
}

mainForm.show();
win.loopMessage();


小窍门:充分利用 dpi 值,以便在不同的屏幕缩放设置下,绘制更准确。

最新回复 (1)
  • rick 1天前
    0 引用 2
    666666,真需要
返回