如何让treenode 的一部分Text 变色 如何让treenode 的一部分Text 变色 如 根接点[0]就是让[] 中的0 变成别的颜色 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考:http://topic.csdn.net/t/20041218/17/3656532.html http://topic.csdn.net/t/20040410/14/2948897.html web程序的話好辦,winform可能要換控件了 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); } } } 如果是web的话,因为TreeNode不是继承自Control或者WebControl的,所以无法通过Attributes这个属性来添加相关的设置代码另外微软的TreeView控件也没有暴露相关的设置属性,所以通过后台代码来设置的方法应该是行不通的这样的话只能考虑前台通过js的方法来实现了TreeView的话生成的html符号是table,对他的每个节点(每一行)来说,都是生成的一个子table可以通过js找到你要设置的对象然后设置就可以了这种方法一个要求treeview的结构要固定,二要求你的js要过关另外就是考虑下找找第三方控件看看有没有符合你要求的了,实在不行么只有自己做个自定义控件了... winform好像没法儿实现,请楼主提问时明确一点吧 C#如何使用布局设计程序主界面? 局域网桌面监控 动态添加DataTable中image列 asp.net中调用服务器的EXE怎么释放掉 数据库问题:当一个业务要对数据库进行多步操作,我该怎么办? 大哥们帮个忙,毕业设计中 防止修改日志文件的问题,没有思路!!!!! aac文件数据流可以保存 无法播放 有关XML的问题 问大虾一个SQL数据库查询效率的问题 新窗口中如何获取上级窗口的值 做网页时,如何实现自动添加控件
http://topic.csdn.net/t/20041218/17/3656532.html
{
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);
}
}
}
可以通过js找到你要设置的对象然后设置就可以了这种方法一个要求treeview的结构要固定,二要求你的js要过关另外就是考虑下找找第三方控件看看有没有符合你要求的了,实在不行么只有自己做个自定义控件了...