我在重绘treeview仿微软点击击,选中时效果时,有个问题解决不了,就是在点击时,有个背景色默认蓝色,怎样去除?请参考下图:
解决方案 »
- 类的一个属性更改的时候怎么把这个类的另外一个属性[Browsable(true)]更改?
- 如何限制软件只能在一台机器上使用?
- 请问C#中如何对一个类的属性设置进程间互斥
- 导入问题!(从EXECEL取值,有的取不到)
- winform中关于NetworkStream发送和接收文件的问题
- winform 中datagrid添加行问题 (80分求助)在线等
- 請問如何在c#中實現聲音的播放?
- 图片存读数据库
- 关于axWebBrowser控件的流程处理,大家都来看看,给个建议
- 急问:IIS的安装问题 (在线等,解决后马上给分!)
- WebService问题
- dev控件中怎么在xtraTabControl.TabPages取到treeview控件
public TreeViewW(IContainer container)
{
container.Add(this); InitializeComponent();
this.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawText;
this.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);
} private Color _rowBackColor1 = Color.White;//颜色1
private Color _rowBackColor2 = Color.White;//颜色2
private Color _selectedColor; private Color _selectedColor1 = Color.Khaki;
private Color _selectedColor2 = Color.Gold;
private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
TreeNode treeNode = e.Node;
if (treeNode.IsSelected)
{ RenderBackgroundInternal(
e.Graphics,
new Rectangle(e.Bounds.Location,
new Size(this.Width - e.Bounds.X - 10, e.Bounds.Height)),
_selectedColor1,
_selectedColor2,
Color.FromArgb(200, 255, 255, 255),
0.45f,
true,
LinearGradientMode.Vertical); } e.Graphics.DrawString(e.Node.Text, this.Font, new SolidBrush(Color.Black), e.Bounds);
//this.Invalidate();
}
private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
TreeNode treeNode = e.Node;
if (treeNode.IsSelected)
{ RenderBackgroundInternal(
e.Graphics,
new Rectangle(e.Bounds.Location,
new Size(this.Width - e.Bounds.X - 10, e.Bounds.Height)),
_selectedColor1,
_selectedColor2,
Color.FromArgb(200, 255, 255, 255),
0.45f,
true,
LinearGradientMode.Vertical); }
else if (e.State==TreeNodeStates.Focused)
{
RenderBackgroundInternal(
e.Graphics,
e.Bounds,
_focusedColor1,
_selectedColor2,
Color.FromArgb(200, 255, 255, 255),
0.45f,
true,
LinearGradientMode.Vertical);
} e.Graphics.DrawString(e.Node.Text, this.Font, new SolidBrush(Color.Black), e.Bounds);