1

我正在创建一个完全由所有者绘制的自定义 winforms Treeview。当粗体文本节点被绘制并超出 Treeview 的宽度时,文本将被截断,因为水平滚动条无法进一步滚动。我认为它与粗体文本有关,并且无法确定正确的宽度。有没有办法纠正滚动条,让它可以一直滚动。

4

1 回答 1

1

对此没有干净的解决方法,本机 Windows 树视图控件缺少“MeasureNode”类型的消息。如果您自定义绘制更宽的字符串,则需要为水平滚动条提供适当的范围。因此,不可避免地,它仍然基于 TreeNode.Text 字符串的大小。

对此有一个肮脏的解决方案,它有效但令人不快。您可以通过为 TreeNode.Text 属性提供一个字符串来做到这一点,该字符串的宽度足以改变滚动条的形状。并使用 Tag 属性来存储您要绘制的真实字符串。丑陋但有效的黑客攻击。不愉快,因为您不能轻易隐藏该代码。

于 2013-02-13T23:51:40.697 回答