你可以通过对TreeView自定义绘制,这样就可以在每个节点上使用Graphics.DrawString来绘指定字体样式的字符串了
比如:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
this.treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;
}
private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
using (Font font = new Font("宋体", 9))
{
using (SolidBrush brush = new SolidBrush(Color.Green))
{
e.Graphics.DrawString(e.Node.Text, font, brush, e.Bounds);
}
}
}
TreeNode拥有的一些属性:
BackColor, ForeColor, NodeFont.....
应该满足你的要求了。。
private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
e.Node.BackColor = Color.Green;//背景色
e.Node.ForeColor = Color.Red; //字体的颜色
e.Node.NodeFont = new Font("Arial", 9, FontStyle.Bold );//字体
}
当然,你如果要精确控制你的node的text的位置,
可以像hbxtlhx(平民百姓-自已动手,丰衣足食)说的那样,自己画。
如果只是一般要求BackColor,ForeColor,NodeFont这三个就够了。