小编use*_*553的帖子

被C#ownerdraw treeview所困扰

很难理解ownerdraw树视图,这里是完整的故事:

一个VS2013 WinForms应用程序(在Windows 8.1上运行,如果重要的话启用了TrueType),其树视图为:DrawMode = OwnerDrawText;

在表单加载中,一些节点被添加到树视图中:

   private void Form1_Load(object sender, EventArgs e)
    {
        // add some nodes
        for (int i = 0; i < 20; i++)
        {
           TreeNode treeNode = treeView1.Nodes.Add(new String('i', 60));
           treeNode.Tag = i;
        }
    }
Run Code Online (Sandbox Code Playgroud)

接下来,我自己绘制每个其他节点以显示问题:

    private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
    {
        // use ownerdraw every other item
        if ((int)(e.Node.Tag) % 2 == 0)
        { 
            Font font = e.Node.NodeFont;
            if (font == null) font = e.Node.TreeView.Font;
            e.Graphics.DrawString(e.Node.Text, font, Brushes.Red, e.Bounds.X, e.Bounds.Y);
        }
        else
        {
            e.DrawDefault …
Run Code Online (Sandbox Code Playgroud)

c# treeview winforms

6
推荐指数
1
解决办法
1438
查看次数

标签 统计

c# ×1

treeview ×1

winforms ×1