图标化的TreeView控件:把信息呈现的更有魅力!

1. 引言

在当今的界面设计中,追求独特而精美的用户界面已成为一种趋势。而树形控件(TreeView)作为一种常见的界面元素,被广泛应用于各种应用程序中,用于展示层次结构和组织数据。然而,大多数默认的树形控件外观相对单调,缺乏吸引力和视觉冲击力。为了提升用户体验和界面的视觉吸引力,我们需要一种简单且高效的方法来增添其魅力。

正是在这样的背景下,为树形控件(TreeView)加入图标成为了一个备受关注的话题。通过添加图标,我们可以赋予TreeView控件更多的动态元素和个性化的特色。图标可以为树形节点提供可视化的标识,使用户更容易理解并导航数据。同时,巧妙运用图标还可以增强应用程序的品牌形象,为用户带来愉悦和独特的界面体验。

2. 添加图标步骤

A. 创建图像列表(Image List)
在为TreeView控件添加图标之前,我们首先需要创建一个图像列表(Image List)来存储我们所需的图标:

import win.imageList; 

// 创建图像列表
var imageList = win.imageList( winform.dpiScale(16,16) ); 

  

B. 为图像列表添加图标

// 添加更多的图标,图标在工程资源目录里
imageList.addIcon("\res\access.ico")
imageList.addIcon("\res\4chan.org.ico")
imageList.addIcon("\res\birdie.ico")

  

C. 关联treeview控件

//将图像列表与treeview控件关联
winform.treeview.setImageList( imageList);

  

D. 创建节点并指定图标索引

//为树形创建节点并指定图标索引
winform.treeview.insertItem(
    text="内核库1";
    iImage=1;//数字是图标索引
    iSelectedImage=1; //选中时显示的图标
    children={
        {text="math";iImage=0;iSelectedImage=1;};
        {text="com";iImage=1;iSelectedImage=1;};
        {text="io";iImage=2;iSelectedImage=1;};
   
    }
)


  

通过以上四步,我们就可以为节点添加图标,整个工程下载和效果图:

3. 工程下载和效果图

完整代码:

//树形控件加图标
import win.ui;
/*DSG{{*/
var winform = win.form(text="树形控件加图标";right=349;bottom=249;parent=...)
winform.add(
treeview={cls="treeview";left=22;top=17;right=326;bottom=230;asel=false;bgcolor=15793151;db=1;dl=1;dt=1;edge=1;hscroll=1;infoTip=1;vscroll=1;z=1}
)
/*}}*/

import win.ui.menu;
winform.treeview.onnotify = function(id,code,ptr){
 
    if( code == 0xFFFFFE3D/*_TVN_SELCHANGEDW*/ ){ //改变选项

		var hItem = winform.treeview.getSelection();
		if(hItem){
			winform.text = winform.treeview.getItemText(hItem);
		}
    }
    elseif(code = 0xFFFFFFFB/*_NM_RCLICK*/){ //鼠标右键单击
        var hItem,tvht = winform.treeview.hitTest();
        winform.treeview.setSelected(hItem);
        
        var menu = win.ui.popmenu(winform)
        menu.add("删除",
            function(){ 
                winform.treeview.delItem(hItem)
            }
        )
        menu.popup(x,y,true);
    }

}


import win.imageList; 

// 创建图像列表
var imageList = win.imageList( winform.dpiScale(16,16) ); 

// 添加更多的图标,图标在工程资源目录里
imageList.addIcon("\res\access.ico")
imageList.addIcon("\res\4chan.org.ico")
imageList.addIcon("\res\birdie.ico")

//将图像列表与treeview控件关联
winform.treeview.setImageList( imageList);

//为树形创建节点并指定图标索引
winform.treeview.insertItem(
    text="内核库1";
    iImage=1;//数字是图标索引
    iSelectedImage=1; //选中时显示的图标
    children={
        {text="math";iImage=0;iSelectedImage=1;};
        {text="com";iImage=1;iSelectedImage=1;};
        {text="io";iImage=2;iSelectedImage=1;};
   
    }
)

winform.treeview.insertItem(
    text="内核库2";
    iImage=0;//数字是图标索引
    iSelectedImage=1;
    children={
        {text="string";iImage=0;iSelectedImage=1;};
        {text="raw";iImage=1;iSelectedImage=1;};
        {text="table";iImage=2;iSelectedImage=1;};
   
    }
)

winform.treeview.insertItem(
    text="内核库3";
    iImage=2;//数字是图标索引
    iSelectedImage=1;
   children={
        {text="time";iImage=0;iSelectedImage=1;};
        {text="com";iImage=1;iSelectedImage=1;};
        {text="io";iImage=2;iSelectedImage=1;};
   
    }
)

winform.show() 
win.loopMessage();

工程下载包含图标:https://www.123pan.com/s/fyWbVv-TJmRv.html提取码:wTNn

效果图:

通过以上示例和截图效果,我们可以看到为TreeView控件添加图标可以提升用户界面的可读性和可视化吸引力。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
add_issue_to_excel(sheet, "A0002", "问题2", "提出人2", "处理人2", "processing") add_issue_to_excel(sheet, "A0003", "问题3", "提出人3", "处理人3", "好的,你可以按照如下步骤来实现从TreeView控件中选择一个节点,将该节点的文本close") # 测试按提出人汇总的问题单行数 count_by_raised_by = count_issues_by_raised_by(sheet) assert count_by_raised_by["提出人1"]["processing"] == 1 assert count_by_raised_by信息显示在一个文本框中: 1. 在窗体上添加一个TreeView控件和一个TextBox控件。 2. 在["提出人1"]["close"] == 0 assert count_by_raised_by["提出人2"]["processing"] == 1 assert count_by_raised_by["提出人2"]["close"] == 0 assert count_by_raised_by["TreeView控件的Nodes节点集合中添加一些节点。 3. 在TreeView控件的AfterSelect事件中编写代码,提出人3"]["processing"] == 0 assert count_by_raised_by["提出人3"]["close"] == 1将选择的节点的文本信息显示在TextBox控件中。 下面是示例代码: ```csharp private void tree # 测试按处理人汇总的问题单行数 count_by_assigned_to = count_issues_by_assigned_to(sheet) assert count_by_assigned_to["处理人1"]["processing"] == 1 assert count_by_assigned_to["处理人1"]["closeView1_AfterSelect(object sender, TreeViewEventArgs e) { textBox1.Text = e.Node.Text; } ``` 在这个"] == 0 assert count_by_assigned_to["处理人2"]["processing"] == 1 assert count_by_assigned_to["处理人2"]["close"] == 0 assert count_by_assigned_to["处理人3"]["processing"] == 0 assert示例代码中,我们通过AfterSelect事件获取了当前选择的节点,并将节点的文本信息显示在了TextBox控件 count_by_assigned_to["处理人3"]["close"] == 1 # 测试总体汇总的问题单行数 中。你可以根据自己的需求来修改代码,实现多的功能。希望这能帮到你 count = count_issues(sheet) assert count["processing"] == 2 assert count["close"] == 1 # 测试!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值