SystemTrayMenu/Utilities/DataGridViewExtensions.cs

33 lines
1.1 KiB
C#
Raw Normal View History

2020-03-14 02:31:31 +13:00
using System.Data;
using System.Linq;
using System.Windows.Forms;
namespace SystemTrayMenu.Utilities
2020-03-14 02:31:31 +13:00
{
public static class DataGridViewExtensions
{
public static void FastAutoSizeColumns(this DataGridView dgv)
{
System.Collections.Generic.IEnumerable<DataGridViewRow> rows = dgv.Rows
2020-03-14 02:31:31 +13:00
.Cast<DataGridViewRow>();
using (System.Drawing.Graphics gfx = dgv.CreateGraphics())
2020-03-14 02:31:31 +13:00
{
int i = 1;
gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
float widthMax = dgv.Columns[i].HeaderCell.Size.Width;
foreach (DataGridViewRow row in rows)
{
float checkWidth = gfx.MeasureString(
2020-03-14 02:31:31 +13:00
row.Cells[i].Value.ToString() + "_",
dgv.RowTemplate.DefaultCellStyle.Font).Width;
if (checkWidth > widthMax)
{
widthMax = checkWidth;
}
}
dgv.Columns[i].Width = (int)(widthMax + 0.5);
}
}
}
}