C# Winforms полужирный treeview узел не показывает целый текст

Я использую следующий код для создания моего treenodes полужирного:

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);
}

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

53
задан Martijn 16 February 2010 в 01:31
поделиться

2 ответа

Я обнаружил, что это проблема Windows. Обходной путь для этой проблемы:

В конструкторе формы установите жирный шрифт древовидной структуры. При добавлении узлов, которые не должны выделяться полужирным шрифтом, измените шрифт на обычный:

// Constructor of your form
public Form() 
{
    InitializeComponent();

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

// Add regular nodes (not bold)
Font font = new Font(tvQuestionSequence.Font, FontStyle.Regular);

TreeNode treeNode = new TreeNode();
treeNode.Text = "Foo";
treeNode.NodeFont = font;

TreeNode parent = tvQuestionSequence.Nodes.Find("parent", true);
parent.Nodes.Add(treeNode);
19
ответ дан 7 November 2019 в 08:39
поделиться

Это известная ошибка Windows. Простое решение - просто добавить лишний пробел в конце ваших строк. Пробел не будет виден, но он увеличит количество пикселей, необходимых для рисования строки, поэтому вся строка будет видна.

5
ответ дан 7 November 2019 в 08:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: