Little Registry Cleaner/Common Tools/TreeViewAdv/Tree/TreeViewAdv.Draw.cs

(开头部分) 11KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Drawing;
using System.Diagnostics;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
using System.Threading;
using Common_Tools.TreeViewAdv.Tree.NodeControls;

namespace Common_Tools.TreeViewAdv.Tree
{
	public partial class TreeViewAdv
	{
        public void AutoSizeColumns(ColumnHeaderAutoResizeStyle headerAutoSize)
        {
            if (this.Columns.Count <= 0)
                throw new Exception("Treeviewadv doesn't contain any columns");

            foreach (TreeColumn tc in this.Columns)
                this.AutoSizeColumn(tc);
        }

        public void AutoSizeColumn(TreeColumn column)
        {
            if (!Columns.Contains(column))
                throw new ArgumentException("column");

            DrawContext context = new DrawContext();
            context.Graphics = Graphics.FromImage(new Bitmap(1, 1));
            context.Font = this.Font;
            int res = 0;
            for (int row = 0; row < RowCount; row++)
            {
                if (row < RowMap.Count)
                {
                    int w = 0;
                    TreeNodeAdv node = RowMap[row];
                    foreach (NodeControl nc in NodeControls)
                    {
                        if (nc.ParentColumn == column)
                            //w += nc.GetActualSize(node, _measureContext).Width;
                            w += nc.GetActualSize(node, context).Width;
                    }
                    res = Math.Max(res, w);
                }
            }

            if (res > 0)
                column.Width = res;
        }

        public void AutoSizeColumn(TreeColumn col, ColumnHeaderAutoResizeStyle headerAutoSize)
        {
            if (!Columns.Contains(col))
                throw new ArgumentException("column is not a part of treeviewadv", "col");

            if (headerAutoSize == ColumnHeaderAutoResizeStyle.None)
                return;

            Thread.BeginCriticalRegion();

后面还有 301 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。