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;
}
}
ただし、これら3つの「修正」のいずれかをボタンの後ろのコードに配置し、すべてが実行された後にクリックすると、問題なく機能します。これは、ツリービューが最初に描画されたときなどに関係していると思いますが、それを回避するための良い方法を見つけようとしています。助言がありますか?