であるため、公式修正が機能しません。TreeNodeのフォントを太字に設定した後、TreeNodeのテキストが切り捨てられるというよく知られた問題が発生しています。しかし、私は、一般的に受け入れられている「修正」のすべてがうまくいかない状況を発見したと思います。Bold treeview node truncated - コンストラクタのコードが
一般的な解決策:http://support.microsoft.com/kb/937215
node.NodeFont = new System.Drawing.Font(node.NodeFont, FontStyle.Bold);
node.Text += string.Empty;
バリエーション1:C# Winforms bold treeview node doesn't show whole text(ブラントの答えを参照)
node.NodeFont = new System.Drawing.Font(node.NodeFont, FontStyle.Bold);
node.Text = node.Text;
バリエーション2:http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/acb877a6-7c9d-4408-aee4-0fb7db127934
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;
}
}
をしかし、私はボタンの背後にあるコードでは、これら三つの「修正」のいずれかを配置し、すべてはそれだけで正常に動作します実行した後、それをクリックした場合。私は、これはツリービューが最初に描画されたときなどと関係があると確信していますが、私はその周りに良い方法を見つけようとしています。助言がありますか?
私はあなたのタイトルを編集しました。 「[質問には「タイトル内に「タグ」を含める必要がありますか」(http://meta.stackexchange.com/questions/19190/)」を参照してください。コンセンサスは「いいえ、そうすべきではありません」です。 –
'treeview1.Refresh()'をコンストラクタの最後のコード行として呼び出してみてください。 –
Johnさんに編集をお願いします。 –