2020-03-14 02:31:31 +13:00
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
2020-03-28 12:42:32 +13:00
|
|
|
|
namespace SystemTrayMenu.Utilities
|
2020-03-14 02:31:31 +13:00
|
|
|
|
{
|
2020-03-30 06:26:45 +13:00
|
|
|
|
internal static class DataGridViewExtensions
|
2020-03-14 02:31:31 +13:00
|
|
|
|
{
|
2020-03-30 06:26:45 +13:00
|
|
|
|
internal static void FastAutoSizeColumns(this DataGridView dgv)
|
2020-03-14 02:31:31 +13:00
|
|
|
|
{
|
2020-03-24 00:38:23 +13:00
|
|
|
|
System.Collections.Generic.IEnumerable<DataGridViewRow> rows = dgv.Rows
|
2020-03-14 02:31:31 +13:00
|
|
|
|
.Cast<DataGridViewRow>();
|
2020-03-24 00:38:23 +13:00
|
|
|
|
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)
|
|
|
|
|
{
|
2020-03-24 00:38:23 +13:00
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|