找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

搜索
查看: 577|回复: 0

[分享] 光庆大佬虚表的列线随意隐藏与显示

[复制链接]
  • TA的每日心情
    奋斗
    2024-2-24 09:56
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    1

    主题

    5

    回帖

    46

    积分

    培训会员

    积分
    46
    来自: 中国山西大同
    发表于 2024-2-24 11:10:19 | 显示全部楼层 |阅读模式 来自: 中国山西大同
    非业余 - aardio 编程语言 - 非官方问答社区
    限时85折!暑假期间,用aardio培训班充实自己!https://mp.weixin.qq.com/s/c4Z8sZPOiMh_OTG2VPOJmA
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    需求是我提的,代码是光庆大佬写的,面向大佬编程

    原教程代码:
    [AAuto] 纯文本查看 复制代码
    import win.ui;
    import godking.vlistEx;
    /*DSG{{*/
    mainForm = win.form(text="vlistEx - table adapter";right=849;bottom=578)
    mainForm.add(
    vlist={cls="vlistEx";left=10;top=10;right=840;bottom=570;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=1}
    )
    /*}}*/
    
    var t = { fields={"序号","姓名","年龄","地址","身份证"} };
    for(i=1;100;1){
        var tt={};
        tt["序号"]="[@rowindex]";  // 行序号标记是不允许编辑修改的
        tt["姓名"]="群众";
        tt["年龄"]="团员";
        tt["地址"]=
    "党员";
        tt["身份证"]=math.random(1000,9999)+"身份证";
        ..table.push(t,tt);
    }
    mainForm.vlist.setTable(t,{"序号","","政治面貌","","身份证"} ,{80,60,60,60,200},0x1);
    mainForm.vlist.hideLineV = {2,3}
    mainForm.vlist.onClick = function(row/*行*/,col/*列*/,x,y){
        /*鼠标左键点击项目事件。x、y为鼠标相对于虚表的坐标*/
        if col==2 or col==3 or col==4 {
            mainForm.vlist.setCellColor(row,2,,null);
            mainForm.vlist.setCellColor(row,3,,null);
            mainForm.vlist.setCellColor(row,4,,null);
            mainForm.vlist.setCellColor(row,col,,({0,0xAAAAFF,0xFFAAAA,0xAAFFAA})[col]);
            mainForm.vlist.redraw();
        }    
    }
    mainForm.show();
    win.loopMessage();


    修改后的代码:
    [AAuto] 纯文本查看 复制代码
    import win.ui;
    import godking.vlistEx;
    /*DSG{{*/
    mainForm = win.form(text="vlistEx - table adapter";right=849;bottom=578)
    mainForm.add(
    vlist={cls="vlistEx";left=10;top=10;right=840;bottom=570;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=1}
    )
    /*}}*/
    
    var t = { fields={"序号","姓名","年龄","地址","身份证"} };
    for(i=1;100;1){
        var tt={};
        tt["序号"]="[@rowindex]";  // 行序号标记是不允许编辑修改的
        tt["姓名"]="群众";
        tt["年龄"]="团员";
        tt["地址"]="党员";
        tt["身份证"]=math.random(1000,9999)+"身份证";
        ..table.push(t,tt);
    }
    mainForm.vlist.setTable(t,{"序号","","政治面貌","","身份证"} ,{80,60,60,60,200},0x1);
    mainForm.vlist.hideLineV = {2,3}
    mainForm.vlist.onClick = function(row/*行*/,col/*列*/,x,y){
        /*鼠标左键点击项目事件。x、y为鼠标相对于虚表的坐标*/
        if col==2 or col==3 or col==4 {
            mainForm.vlist.setCellColor(row,2,,null);
            mainForm.vlist.setCellColor(row,3,,null);
            mainForm.vlist.setCellColor(row,4,,null);
            mainForm.vlist.setCellColor(row,col,,({0,0xAAAAFF,0xFFAAAA,0xAAFFAA})[col]);
            mainForm.vlist.redraw();
        }    
    }
    
    mainForm.vlist.onDrawCellBg = function(row,col,hdc,rc,bkcolor,text){
            /*绘制单元格背景,返回ture则忽略原背景,否则继续绘制原背景。注意:该背景包含padding部分,而padding以外的部分会被有效区域背景遮盖*/
            if col==2 or col==3{
                    gdi.selectPen(
                            function(hdc,pen){
                                    gdi.drawLine(hdc,rc.right,rc.top,rc.right,rc.bottom)
                            },hdc,0x0000FF,0x000000)
            }
            return true; 
    }
    
    mainForm.show();
    win.loopMessage();


    效果对比:


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    非业余 - aardio 编程语言 - 非官方问答社区
    限时85折!暑假期间,用aardio培训班充实自己!https://mp.weixin.qq.com/s/c4Z8sZPOiMh_OTG2VPOJmA
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    回复

    使用道具 举报

    *滑块验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|非业余 - aardio 编程语言 - 非官方问答社区

    GMT+8, 2024-9-17 03:32 , Processed in 0.130653 second(s), 31 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表