如何让treenode 的一部分Text 变色 
如 根接点[0]
就是让[] 中的0 变成别的颜色

解决方案 »

  1.   

    参考:
    http://topic.csdn.net/t/20041218/17/3656532.html
      

  2.   

    http://topic.csdn.net/t/20040410/14/2948897.html
      

  3.   

    web程序的話好辦,winform可能要換控件了
      

  4.   

      private void Form1_Load(object sender, EventArgs e)
            {
      treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;
                treeView1.DrawNode+=new DrawTreeNodeEventHandler(treeView1_DrawNode);
                treeView1.Nodes.Add("Text[1]");
    }
            private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
            {
                TreeView _TreeView =(TreeView)sender;
                Color _Color = Color.Black;
                if (!e.Node.IsVisible) return;            if (e.Node.IsSelected) _Color = Color.White;
                string[] _Value = e.Node.Text.Split(new char[] { '[', ']' },StringSplitOptions.RemoveEmptyEntries);            int _X = e.Bounds.X;
                int _SizeView=4;
                if (_Value.Length == 2)
                {
                    e.Graphics.DrawString(_Value[0], _TreeView.Font, new SolidBrush(_Color), _X, e.Bounds.Y);
                    SizeF _Size= e.Graphics.MeasureString(_Value[0], _TreeView.Font);
                    e.Graphics.DrawString("[", _TreeView.Font, new SolidBrush(_Color), _X + _Size.Width - _SizeView, e.Bounds.Y);
                    _X += (int)_Size.Width - _SizeView;
                    _Size = e.Graphics.MeasureString("[", _TreeView.Font);
                    e.Graphics.DrawString(_Value[1], _TreeView.Font, new SolidBrush(Color.Red), _X + _Size.Width - _SizeView, e.Bounds.Y);
                    _X += (int)_Size.Width - _SizeView;
                    _Size = e.Graphics.MeasureString(_Value[1], _TreeView.Font);
                    e.Graphics.DrawString("]", _TreeView.Font, new SolidBrush(_Color), _X + _Size.Width - _SizeView, e.Bounds.Y);
                }
                else
                {
                    e.Graphics.DrawString(e.Node.Text, _TreeView.Font, new SolidBrush(_Color), e.Bounds);
                }
               
                
            }
        }
      

  5.   

    如果是web的话,因为TreeNode不是继承自Control或者WebControl的,所以无法通过Attributes这个属性来添加相关的设置代码另外微软的TreeView控件也没有暴露相关的设置属性,所以通过后台代码来设置的方法应该是行不通的这样的话只能考虑前台通过js的方法来实现了TreeView的话生成的html符号是table,对他的每个节点(每一行)来说,都是生成的一个子table
    可以通过js找到你要设置的对象然后设置就可以了这种方法一个要求treeview的结构要固定,二要求你的js要过关另外就是考虑下找找第三方控件看看有没有符合你要求的了,实在不行么只有自己做个自定义控件了...
      

  6.   

    winform好像没法儿实现,请楼主提问时明确一点吧