C# WinForm TreeListView控件用法初步


TreeListView是第三方控件,我找到一个vs2003下的源码,升级到vs2010
使用起来没有什么不同。刚刚用了一下,感觉挺不错。分享一下。

1.把TreeListView控件添加到工具箱。

右击工具箱中的常规选项卡->选择项,找到System.Windows.Forms.TreeListView.dll

添加进来。然后就可以像普通控件一样拖一个到窗体。

2.设置属性这里主要设置一下Columns集合与SmallImageList

设置用来显示节点图标。如果不设置SmallImageList属性,无法正常显示。

如果不设置图标的话,图标显示的位置为空白。

CheckBoxs属性可以设置为Recursive可以显示成复选框。

3.通过AddItems()添加小项,

编写BeforeExpand();BeforeCollapse();BeforeLabelEdit();

三个事件的响应函数。就是展开或者折叠时显示哪个图标。

4.附带TreeListView的源码,以备二次开发。

C# WinForm TreeListView控件用法初步_系统架构





using 
       System;
 
      using 
       System.Collections.Generic;
 
      using 
       System.ComponentModel;
 
      using 
       System.Data;
 
      using 
       System.Drawing;
 
      using 
       System.Text;
 
      using 
       System.Windows.Forms;

 
      namespace 
       TreeListViewApp
 {
      
      public 
        
      partial 
        
      class 
       Form1 : Form
     {
          
      public 
       Form1()
         {
             InitializeComponent();
         }

          
      private 
        
      void 
       Form1_Load( 
      object 
       sender, EventArgs e)
         {
             AddItems();
         }
          
      private 
        
      void 
       AddItems()
         {
              
      // 
      第一个参数是要显示的文本,第二个参数是要显示的图标索引。 
      
 
                  TreeListViewItem itemA  
      = 
        
      new 
       TreeListViewItem( 
      " 
      A 
      " 
      ,  
      0 
      );
             itemA.Expand(); 
      // 
      展开 
      
 
                  itemA.SubItems.Add( 
      " 
      AA 
      " 
      ); 
      // 
      SubItems相当于同一行的不同列值。 
      
 
                  itemA.SubItems.Add( 
      " 
      BB 
      " 
      ); 
      // 
      第三列
              
      // 
      二级 
      
 
                  TreeListViewItem itemA0  
      = 
        
      new 
       TreeListViewItem( 
      " 
      A0 
      " 
      ,  
      1 
      );
             itemA.Items.Add(itemA0);
              
      // 
      三级 
      
 
                  TreeListViewItem itemA00  
      = 
        
      new 
       TreeListViewItem( 
      " 
      A00 
      " 
      ,  
      3 
      );
             itemA0.Items.Add(itemA00);

             treeListView1.Items.Add(itemA);
         }
          
      // 
      折叠事件 
      
 
               
      private 
        
      void 
       treeListView1_BeforeCollapse( 
      object 
       sender, TreeListViewCancelEventArgs e)
         {
              
      // 
      索引1,2分别对应折叠与展开的图标。 
      
 
                   
      if 
       (e.Item.ImageIndex  
      == 
        
      2 
      ) e.Item.ImageIndex  
      = 
        
      1 
      ;
         }
          
      // 
      展开事件 
      
 
               
      private 
        
      void 
       treeListView1_BeforeExpand( 
      object 
       sender, TreeListViewCancelEventArgs e)
         {
              
      if 
       (e.Item.ImageIndex  
      == 
        
      1 
      ) e.Item.ImageIndex  
      = 
        
      2 
      ;
         }
          
      // 
      编辑状态 
      
 
               
      private 
        
      void 
       treeListView1_BeforeLabelEdit( 
      object 
       sender, TreeListViewBeforeLabelEditEventArgs e)
         {
              
      // 
      设置LabelEdit属性为True才可激活 
      
 
                   
      if 
       (e.Item.ImageIndex  
      < 
        
      1 
        
      || 
       e.Item.ImageIndex  
      > 
        
      2 
      ) 
      // 
      第一级与第三级只可以编辑第一列。 
      
 
                      e.ColumnIndex  
      = 
        
      0 
      ;
              
      if 
       (e.ColumnIndex  
      == 
        
      1 
      ) 
      // 
      如果是第二列,显示一个下拉框。 
      
 
                  {
                 ComboBox combobox  
      = 
        
      new 
       ComboBox();
                 combobox.Items.AddRange( 
      new 
        
      string 
      [] {  
      " 
      New value 1 
      " 
      ,  
      " 
      New value 2 
      " 
      ,  
      " 
      New value 3 
      " 
       });
                 e.Editor  
      = 
       combobox;
             }
         }
     }
 }

C# WinForm TreeListView控件用法初步_System_02