【问题标题】:Rewriting TreeView's Draw node method重写TreeView的Draw节点方法
【发布时间】:2012-07-26 19:37:23
【问题描述】:

我正在尝试像这样重写方法:

private void myTreeView_DrawNode(object sender, DrawTreeNodeEventArgs e)
        {
            //Custome properties
            TextRenderer.DrawText(e.Graphics, e.Node.Text, e.Node.Font, e.Node.Bounds, Color.Black);
        }

一切都很好,但是节点附近没有迹象(加/减):

它们实际上存在并且它们起作用,但是它们是不可见的。如何用这种方法重写它们或我做错了什么?

【问题讨论】:

  • 那不编译。没有e.Node.Font 属性。您是说图像中的加号/减号不存在吗?
  • 对不起,应该是Node.TreeView.Font

标签: c# winforms treeview


【解决方案1】:

绘图共有三种模式:

TreeView.DrawMode:

  • 正常
    TreeView 将为您绘制所有内容

  • OwnerDrawText
    TreeView 将为您绘制 +/- 和线条(如果 ShowPlusMinus=true 和 ShowRootLines=true)。您所要做的就是绘制文本部分。

  • OwnerDrawAll
    您必须绘制所有内容。

【讨论】:

    【解决方案2】:

    首先应该将这些属性设置为 true。

     myTreeView.ShowPlusMinus = true;
     myTreeView.ShowRootLines = true;
    

    DrawMode 属性也必须更改为正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多