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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。