代码之家  ›  专栏  ›  技术社区  ›  philsquared

如果字体从粗体更改为常规,则会剪裁TreeView文本

  •  4
  • philsquared  · 技术社区  · 16 年前

    我有一个WinForms树视图。TreeView表示更详细视图的摘要,我使用的视觉提示之一是使节点的文本加粗或规则。 问题是,如果您将节点的字体从常规更改为粗体,它将剪裁文本,就好像它试图在常规文本的空间中匹配粗体文本一样。

    浏览一下就会发现,通常的解决方法是将TreeView的字体设置为粗体,并有选择地将节点设置为常规。

    返回 大胆的说,它又被剪掉了。 因为我在动态更新我的视图,所以我遇到了这个问题。

    令人惊讶的是,我在Stackoverflow上找不到任何关于这个问题的引用,所以我想我应该尽我所能把它放到这里。 有人知道这个问题的更彻底(但最好不要过于复杂)的解决方法或解决方案吗?

    我使用的是运行在.NET2.0上的C#3,但如果需要,可以使用.NET3.5。

    没有接受者,嗯?太糟糕了。到目前为止,我自己想出的最好办法就是在字符串的末尾添加一堆空格(给它空间增长)。在很多层面上都有这种味道(尤其是因为它会影响滚动条)。我不想去第三方控制(或写我自己的),因为这只是为我的开发团队的内部应用程序。考虑改变比喻,但这很合适。

    3 回复  |  直到 16 年前
        1
  •  10
  •   Edhy    16 年前

    我在VB.Net中遇到了同样的问题,解决方法是调用以下命令:

    '--在此处填充树节点。 TreeView.EndUpdate()

        2
  •  3
  •   Coder22    15 年前

    找到了另一个解决方案:设置文本 之后

        3
  •  0
  •   Moha    12 年前

    我也有同样的问题。我的解决方案是:开始时将treeView字体设置为粗体,当某些节点不能粗体时,将字体更改为常规:

    if (conditionForRegularTreeNode)
      newNode.NodeFont = new Font(treeView.Font, FontStyle.Regular);