解决TreeView的节点更改NodeFont后无法完全显示节点名的问题

今天做树视图显示数据的时候,准备把树视图中第一级节点设成小四号粗体,第二级节点设成五号字体。

 在代码中更改Node的字体字号以后,发现节点名的后半部分显示不出来

    node.NodeFont = new Font("宋体", 12,FontStyle.Bold);

开始以为是什么属性设置的不对,后来改了半天也没弄出个所以然;又在网上草草看了一些网友的日志也没有找到明确的说法;

后来还是在msdn(http://msdn.microsoft.com/zh-cn/library/ie/system.windows.forms.treenode.nodefont)上看到了这样一句话,才解开了心中的疑团:

   如果节点字体大于在 TreeView 控件中设置的 Font 属性值,则将剪裁树节点标签文本。

   原来我的TreeView中默认的是五号宋体(10.5磅),而代码中改成了12磅的粗体,所以节点标签文本被裁剪掉了。

   把TreeView中默认的字体设为12磅粗体,第二级节点字号在代码中改为10.5磅常规字体,通过!

原文地址:https://www.cnblogs.com/RoyYu/p/2434103.html