Winforms Treeview文本被截止

时间:2015-10-22 18:56:35

标签: c# winforms treeview

我在我的通知应用程序中使用了一个树视图。当我加载具有大量文本的节点时,文本被切成12个字符。我如何防止这种情况发生?

正在使用的字体: Microsoft Sans Serif,12pt,style = Bold

我尝试过使用普通字体而没有运气。

这是我的代码(我用另一个类重写了treenode):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace Repetrel
{
    public class ActionObjectTreeNode: TreeNode
    {
    public string fileName = null;

    private ActionObject actionObject = new ActionObject();

    public string Text {
        get { return base.Text; }
        set {
            if (value.Equals(base.Text) == false && base.Text!="")
            {
                Trace.WriteLine("error detected");
            }
            base.Text = value;
        }
    }

    public ActionObject ACTIONOBJECT
    {
        get
        {
            return actionObject;
        }

        set
        {
            actionObject = value;
            if (value == null && TREENODETYPE != TreeNodeType.Project) {
                System.Diagnostics.Trace.WriteLine("null assigned to actionobject");
            }
        }
    }
    public TreeNodeType TREENODETYPE { get; set; }
    public TreeNodeType LOCKEDNODETYPE { get; set; }
    public DrillActionGroup ACTIONPROPERTIES { get; set; }

    public ActionObjectTreeNode()
    {

    }

    public ActionObjectTreeNode(string text)
    {
        this.Text = text;
    }

    public ActionObjectTreeNode(ActionObject actionObject)
    {
        if (actionObject != null)
        {
            this.Text = actionObject.TEXT;
            this.ACTIONOBJECT = actionObject;
        }
    }


    public bool guidMatch(string _guid)
    {
        return ACTIONOBJECT.getGuid().Equals(_guid);       
    }

}

}

3 个答案:

答案 0 :(得分:2)

将树形视图的 font size属性值设置为高于以编程方式设置的 font size。

(image) Microsoft Help

(image) The Font property value of the treeview

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.treenode.nodefont?view=netframework-4.8

答案 1 :(得分:1)

当您以编程方式将节点的Font属性设置为Bold值时,可能会截断节点的文本。

在以编程方式将节点的Font属性设置为Bold值之后,需要在文本中添加一个空字符串。

例如:

treeView1.Nodes[0].NodeFont = new System.Drawing.Font("Microsoft Sans Serif", 12pt, System.Drawing.FontStyle.Bold);
treeView1.Nodes[0].Text += string.Empty;

答案 2 :(得分:0)

显然我正在裁剪树视图中的文本。问题解决了。谢谢你的帮助!