【第十一章 11.6】列表视图控件Listview -- 编辑列表项

贴主:admin 发贴:2024-08-09 09:22 浏量:11

演示:

代码:

// 导入 win.ui 库,用于创建图形界面
import win.ui;  
/*DSG{{*/
// 创建一个名为 winform 的窗口对象,并设置其属性
var winform = win.form(text="aardio form";right=343;bottom=244;parent=...)  
// 向窗口中添加控件
winform.add(
    // 添加"编辑当前选中项"按钮控件,并设置其属性
    btnEdit={cls="button";text="编辑当前选中项";left=175;top=191;right=283;bottom=223;z=2};  
    // 添加列表视图控件,并设置其属性,注意要指定 editable=true 以支持编辑
    listview={cls="listview";left=25;top=23;right=310;bottom=182;bgcolor=16777215;edge=1;editable=true;z=1}  
)
/*}}*/

// 注意在上面的 listview 属性中,一定要指定 editable=true
// 向列表视图插入列
winform.listview.insertColumn("测试项",200)  
// 设置列表视图的项
winform.listview.items = {"鼠标点这里,稍候再点击一次";"鼠标单击选中项则进入编辑模式"}

// "编辑当前选中项"按钮的命令事件处理函数
winform.btnEdit.oncommand = function(id,event){
    // 触发列表视图编辑当前选中项
    winform.listview.editLabel()
}

// 列表视图的通知处理函数
winform.listview.onnotify = function(id,code,ptr){
    // 如果是开始编辑项的通知
    if(code = 0xFFFFFF97/*_LVN_BEGINLABELEDIT*/ ){  
        // 返回 false,允许编辑项
        return false;  
    }
    // 如果是编辑项结束的通知
    if( code == 0xFFFFFF50/*_LVN_ENDLABELEDITW*/ ){
        // 获取编辑结束的相关信息
        var dispInfo = winform.listview.getNotifyDispInfo(code,ptr);  
        // 如果有编辑后的文本
        if( dispInfo && dispInfo.item.text ) {
            // 设置列表视图指定项的文本
            winform.listview.setItemText( dispInfo.item.text, dispInfo.item.iItem,dispInfo.item.iSubItem );
        }
    }
}

// 显示窗口
winform.show()  
// 启动界面线程消息循环
win.loopMessage();


相关回复


    暂无评论!

发表回复