111,092
社区成员




using System;
using System.Windows.Forms;
using System.Drawing;
namespace WindowsApplication1
{
public partial class myTreeView : TreeView
{
public myTreeView()
{
_SelectNodeColor = Color.Blue;
_SelectNodeFont = this.Font;
}
// 所选节点的文本颜色
Color _SelectNodeColor;
public Color SelectNodeColor
{
get { return _SelectNodeColor; }
set { _SelectNodeColor = value; }
}
//所选节点的文本字体
Font _SelectNodeFont;
public Font SelectNodeFont
{
get { return _SelectNodeFont; }
set { _SelectNodeFont = value; }
}
//前一个选择的节点还原显示效果
protected override void OnBeforeSelect(TreeViewCancelEventArgs e)
{
TreeNode node = e.Node.TreeView.SelectedNode;
if (node != null)
{
node.ForeColor = this.ForeColor;
node.NodeFont = this.Font;
}
}
//设置选择的节点的显示效果
protected override void OnAfterSelect(TreeViewEventArgs e)
{
e.Node.ForeColor = _SelectNodeColor;
e.Node.NodeFont=_SelectNodeFont;
}
//去掉焦点框。(还是会闪一下的,要真正不要焦点,需要栏截API,开销太大了)
protected override void OnGotFocus(EventArgs e)
{
this.Parent.SelectNextControl(this, true, false, true, true);
}
}
}