narutozlt 2017-04-10 00:42 采纳率: 0%
浏览 1807
已结题

重绘treeview控件,展开某个节点,即第一个根节点那一排被覆盖

如题: 重绘treeview控件,运行后第一次展开某个节点,被展开节点的所有子节点的text会覆盖控件顶部(即第一个根节点那一排)
代码:
protected override void OnDrawNode(DrawTreeNodeEventArgs e)
{

//节点背景绘制
if ((e.State & TreeNodeStates.Selected) != 0)
{
e.Graphics.FillRectangle(ctbgBrush, e.Bounds);
e.Graphics.DrawString(e.Node.Text, foreFont, cdrawTextBrush,e.Node.Bounds.Left + 50, e.Node.Bounds.Top + 5);

            }
            else if ((e.State & TreeNodeStates.Hot) != 0)//|| currentMouseMoveNode == e.Node)
            {
                e.Graphics.FillRectangle(htbgBrush, e.Bounds);
               e.Graphics.DrawString(e.Node.Text, foreFont, hdrawTextBrush, e.Node.Bounds.Left + 50, e.Node.Bounds.Top + 5);

            }
            else
            {

                e.Graphics.FillRectangle(tbgBrush, e.Bounds);
                e.Graphics.DrawString(e.Node.Text, foreFont, drawTextBrush, e.Node.Bounds.Left + 50, e.Node.Bounds.Top + 5);
            }

    }

截图:https://img-ask.csdn.net/upload/201704/10/1491785256_776757.png

是用的是这个资源写的,他的没事:http://download.csdn.net/detail/jxmlh001/7095331

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-04-10 02:16
    关注

    调试下,分明是你的DrawString的坐标计算有问题e.Node.Bounds.Top是多少

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab