首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C# Winforms粗体树视图节点不显示整个文本

C# Winforms粗体树视图节点不显示整个文本
EN

Stack Overflow用户
提问于 2010-02-16 19:31:19
回答 13查看 31.5K关注 0票数 57

我使用以下代码将我的树节点设置为粗体:

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

但是粗体节点的文本不能正确显示。未显示最后一个字母。怎么会这样?如何解决这个问题呢?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2010-02-16 20:14:50

我发现这是一个Windows问题。此问题的解决方法如下所示:

在窗体构造函数中,将treeview的字体设置为粗体。添加不能为粗体的节点时,将字体更改为regular:

// 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);
票数 22
EN

Stack Overflow用户

发布于 2011-04-27 21:31:58

我在网上搜索时发现了这篇文章,因为我正面临着完全相同的问题。

然而,在节点的末尾添加一个空格并不是一种选择,我找到了一种似乎可以解决这个问题的替代方法。

在设置节点字体粗体后,我需要做的就是将节点文本重置为相同的值。

以下是代码示例:

Font boldFont = new Font(treeview.Font, FontStyle.Bold);
node.NodeFont = boldFont;
node.Text = node.Text;

似乎节点在更改文本后被重新绘制,这正是我首先想要的。

票数 65
EN

Stack Overflow用户

发布于 2016-12-29 05:10:21

只需在加粗节点之前使用treeView.BeginUpdate(),然后在加粗节点之后使用treeView.EndUpdate()。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2272493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档