关于treeview节点颜色的几个问题 节点是xml动态加载的,当鼠标点一个节点后,被点的节点默认背景是蓝色,还有下划线,很不好看,请问如何更改?我想要的效果是:鼠标移动到某个节点上,那个节点无背景,无下划线,只是颜色变成橙色,移走鼠标颜色还原默认设置;鼠标点击一个节点,被点击节点还是无背景无下划线,文字变橙色。点击另一个节点后,这个节点的颜色又还原成默认设置搜索了很多资料也没找到解决办法,求助。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用鼠标那个事件,, 来改变颜色,当光标放在字上 是一个颜色, 移开 恢复。好像是cellmouseclick什么种的一个。 看你要什么效果 就用cellmouse... 除非重写treeview控件或在treeview的onpain事件中改写。 用treeView1_NodeMouseClick以及treeView1_NodeMouseHover 这2个事件不能实现吗? 翻遍baidu和google,都没找到答案,难道这个问题很难解决吗? 通过NodeMouseEnter或NodeMouseHover、NodeMouseClick修改如下属性:TreeNode.BackColor 背景色TreeNode.ForeColor 前景色TreeNode.NodeFont 字体(字体名,大小,样式) 通过TreeView的相关NodeMouse事件传递的EventArgs e获得当前的节点,如e.Node这样就可以得到当前鼠标停留或单击的节点,再修改相关属性 找到办法了,网上搜索的代码修改了下就ok了。写出来好给需要的人用用系统的默认事件不好用,需要重新绘制,先将treeview的DrawMode属性设置为OwnerDrawText,如果不设置下面的代码就没用了。然后再在DrawNode事件里这样写基本就能实现了private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) { Color foreColor; Color backColor; if ((e.State & TreeNodeStates.Selected) > 0) { foreColor = Color.OrangeRed;//鼠标点击节点时文字颜色 backColor = Color.DimGray;//鼠标点击节点时背景颜色 } else if ((e.State & TreeNodeStates.Hot) > 0) { foreColor = Color.Green;//鼠标经过时文字颜色 backColor =Color.DarkGray;//鼠标经过时背景颜色 } else { foreColor = this.treeView1.ForeColor; backColor = this.treeView1.BackColor; } e.Graphics.FillRectangle(new SolidBrush(backColor), new Rectangle(e.Bounds.Location, new Size(this.treeView1.Width - e.Bounds.X, e.Bounds.Height))); e.Graphics.DrawString(e.Node.Text, this.treeView1.Font, new SolidBrush(foreColor), e.Bounds); } 大家来帮我看看这是肿么了,谢谢 ClearPool()的问题 dataset更新数据库简单问题,来看看 如何将数据库中其中一个表复制到另一个库中? 为什么错了? @@@@@@用C#调用VC写的dll中的类,可以吗?最好给个示例代码说明@@@@@@@ 求C#中快速获取图片缩略图(效率要很快) GridView删除最后一行的问题 求助,关于遍历控件效率问题 c#如何生成自定义配置文件 VS2008 C# 如何调用VC++6.0创建的DLL? C#调用C++dll时候,数组的类型怎么转换?
TreeNode.BackColor 背景色
TreeNode.ForeColor 前景色
TreeNode.NodeFont 字体(字体名,大小,样式)
用系统的默认事件不好用,需要重新绘制,先将treeview的DrawMode属性设置为OwnerDrawText,如果不设置下面的代码就没用了。
然后再在DrawNode事件里这样写基本就能实现了private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
Color foreColor;
Color backColor;
if ((e.State & TreeNodeStates.Selected) > 0)
{
foreColor = Color.OrangeRed;//鼠标点击节点时文字颜色
backColor = Color.DimGray;//鼠标点击节点时背景颜色
}
else if ((e.State & TreeNodeStates.Hot) > 0)
{
foreColor = Color.Green;//鼠标经过时文字颜色
backColor =Color.DarkGray;//鼠标经过时背景颜色
}
else
{
foreColor = this.treeView1.ForeColor;
backColor = this.treeView1.BackColor;
} e.Graphics.FillRectangle(new SolidBrush(backColor), new Rectangle(e.Bounds.Location, new Size(this.treeView1.Width - e.Bounds.X, e.Bounds.Height)));
e.Graphics.DrawString(e.Node.Text, this.treeView1.Font, new SolidBrush(foreColor), e.Bounds); }