4

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

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

这确实工作得更好,但是一旦我将节点更改为常规节点,如果我将其更改粗体,它会再次被剪裁。由于我正在动态更新我的视图,因此我遇到了这个问题。

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

我正在使用在 .Net 2.0 上运行的 C# 3,但如有必要,可以使用 .Net 3.5。

[更新]

没有接盘侠吧?太糟糕了。到目前为止,我自己想出的最好的方法是在字符串的末尾添加大量空格(以使其有增长空间)。这在很多层面上都闻起来(尤其是因为它会影响滚动条)。我不想使用第三方控件(或自己编写),因为这只是我的开发团队的内部应用程序。考虑改变比喻,但它很合适。

4

3 回答 3

10

我遇到了与 VB.Net 相同的问题,解决方案是调用以下命令:

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

于 2010-02-15T02:30:42.403 回答
3

找到另一种解决方案:在更改字体后设置文本,而不是在添加具有键和文本属性的节点后更改字体

于 2010-11-09T13:09:27.283 回答
0

我遇到了同样的问题(C#)。我的解决方案是:一开始将treeView字体设置为粗体,当某些节点不能为粗体时,将字体更改为常规:

if (conditionForRegularTreeNode)
  newNode.NodeFont = new Font(treeView.Font, FontStyle.Regular);
于 2014-03-28T22:53:22.003 回答