我遇到了一个众所周知的问题,即在将 TreeNode 的字体设置为粗体后,TreeNode 的文本会被截断。但是,我相信我发现了所有普遍接受的“修复”都不起作用的情况。
常见解决方案:http: //support.microsoft.com/kb/937215
node.NodeFont = new System.Drawing.Font(node.NodeFont, FontStyle.Bold);
node.Text += string.Empty;
变体 1: C# Winforms 粗体树视图节点不显示整个文本(请参阅 BlunT 的答案)
node.NodeFont = new System.Drawing.Font(node.NodeFont, FontStyle.Bold);
node.Text = node.Text;
node.NodeFont = new System.Drawing.Font(node.NodeFont, FontStyle.Bold);
treeView1.BackColor = treeView1.BackColor;
上述修复不起作用的场景:
如果将节点设置为粗体的代码位于构造函数中(表单或在本例中为用户控件),则修复将不起作用:
public partial class IncidentPlanAssociations : UserControl
{
public IncidentPlanAssociations()
{
InitializeComponent();
TreeNode node = new TreeNode("This is a problem.");
node.NodeFont = new Font(treeView1.Font, FontStyle.Bold);
treeView1.Nodes.Add(node);
// This does not fix problem
node.Text += string.Empty;
// This does not fix problem
node.Text = node.Text;
// This does not fix problem
treeView1.BackColor = treeView1.BackColor;
}
}
但是,如果我将这三个“修复”中的任何一个放在按钮后面的代码中,并在一切运行后单击它,它就会正常工作。我确信这与最初绘制树视图时有关,但我正试图找出解决它的好方法。有什么建议么?