想要使用c#在winforms的treenode中加粗一个单词的大胆字符

时间:2011-07-21 12:40:26

标签: c# treeview

我在树视图中搜索“搜索TextBox”,我给出了很好的结果。但是我希望得到那些我在winform的“搜索TextBox”中键入的Bold。

Ex:我输入Ram然后它给* Ram * esh。

1 个答案:

答案 0 :(得分:4)

TreeNode类不支持它,它的Text总是用一种字体TreeView.Font绘制。使文本的一部分粗体在技术上是可能的,但很难做到正确。您需要使用TreeView.DrawMode属性和DrawItem事件启用自定义绘图,在MSDN Library文章中有一个很好的示例。

这是最简单的部分,难的问题是节点太小而不能以粗体字体绘制部分文本。 TreeView缺少一个“MeasureNodeText”事件,可以让你要求足够的空间。唯一的解决方法是对节点文本撒谎,并通过为字符添加前缀来使其人为地更宽。然后你不在DrawItem事件中绘制。非常难以始终如一,你需要考虑固定音高字体。

除非此功能对您非常重要,否则我不建议您继续这样做。这也解释了为什么你从未在其他程序中看到此功能。考虑更改颜色而不是字体粗细。仍然难以将碎片粘在一起btw。