C # Winforms смелый древовидный узел не показывает весь текст - PullRequest
52 голосов
/ 16 февраля 2010

Я использую следующий код, чтобы сделать мои триоды жирными:

Font font = new Font(tvQuestionSequence.Font, FontStyle.Bold);

foreach (QuestionnaireBuilder_Category cat in categories)
{
    TreeNode node = new TreeNode();

    node.Text = cat.Description;
    node.Name = cat.Id.ToString();

    node.NodeFont = font;

    tvQuestionSequence.Nodes.Add(node);
}

Но текст полужирных узлов отображается неправильно. Последние буквы не отображаются. Как так? И как решить эту проблему?

Ответы [ 13 ]

0 голосов
/ 24 августа 2016

Что сработало для меня: подключение к событию load в конструкторе Control и настройка узла, как объяснено в ответе BlunT.

public MyControl()
{
    InitializeComponent();
    _head = new TreeNode();

    this.Load += (s, e) =>
    {
        trvParts.Nodes.Clear();
        _head.NodeFont = new Font(trvParts.Font, FontStyle.Bold);
        trvParts.Nodes.Add(_head);
        _head.Text = "Node Name";
    };
}
0 голосов
/ 01 февраля 2016

Я понимаю, что это старая тема, и на нее, возможно, ответили. Я только столкнулся с этой проблемой, поскольку я учусь использовать TreeViews. Для меня работало изменение размера шрифта для всего TreeView на тот же размер или больше, чем шрифт уровня, который вы хотите выделить жирным шрифтом. Размер шрифта по умолчанию составляет 8. что-то. Я изменил свой на 10, который был размером, который я хотел, чтобы мои узлы, и усечение исчезло.

0 голосов
/ 28 июля 2012

Очень просто и отлично работает

treeView1.SelectedNode.NodeFont = new System.Drawing.Font(treeView1.SelectedNode.TreeView.Font, treeView1.SelectedNode.TreeView.Font.Style | FontStyle.Bold);
           this.treeView1.SelectedNode.Text += string.Empty;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...