/// ------------------------------------------------------------------------------------ public CheckBoxColumnHeaderHandler(DataGridViewColumn col) { Debug.Assert(col != null); Debug.Assert(col is DataGridViewCheckBoxColumn); Debug.Assert(col.DataGridView != null); _col = col; _owningGrid = col.DataGridView; _owningGrid.HandleDestroyed += HandleHandleDestroyed; _owningGrid.CellPainting += HandleHeaderCellPainting; _owningGrid.CellMouseMove += HandleHeaderCellMouseMove; _owningGrid.CellMouseClick += HandleHeaderCellMouseClick; _owningGrid.CellContentClick += HandleDataCellCellContentClick; _owningGrid.Scroll += HandleGridScroll; _owningGrid.RowsAdded += HandleGridRowsAdded; _owningGrid.RowsRemoved += HandleGridRowsRemoved; if (!BetterGrid.CanPaintVisualStyle()) _szCheckBox = new Size(13, 13); else { var element = VisualStyleElement.Button.CheckBox.CheckedNormal; var renderer = new VisualStyleRenderer(element); using (var g = _owningGrid.CreateGraphics()) _szCheckBox = renderer.GetPartSize(g, ThemeSizeType.True); } }
/// ------------------------------------------------------------------------------------ /// <summary> /// Constructor. /// </summary> /// ------------------------------------------------------------------------------------ public CheckBoxColumnHeaderHandler(DataGridViewColumn col) { Debug.Assert(col != null); Debug.Assert(col is DataGridViewCheckBoxColumn); Debug.Assert(col.DataGridView != null); m_col = col; m_grid = col.DataGridView; m_grid.HandleDestroyed += HandleHandleDestroyed; m_grid.CellPainting += HandleHeaderCellPainting; m_grid.CellMouseMove += HandleHeaderCellMouseMove; m_grid.ColumnHeaderMouseClick += HandleHeaderCellMouseClick; m_grid.CellContentClick += HandleDataCellCellContentClick; m_grid.Scroll += HandleGridScroll; m_grid.RowsAdded += HandleGridRowsAdded; m_grid.RowsRemoved += HandleGridRowsRemoved; if (!Application.RenderWithVisualStyles) { m_szCheckBox = new Size(13, 13); } else { var element = VisualStyleElement.Button.CheckBox.CheckedNormal; var renderer = new VisualStyleRenderer(element); using (var g = m_grid.CreateGraphics()) m_szCheckBox = renderer.GetPartSize(g, ThemeSizeType.True); } m_stringFormat = new StringFormat(StringFormat.GenericTypographic); m_stringFormat.Alignment = StringAlignment.Center; m_stringFormat.LineAlignment = StringAlignment.Center; m_stringFormat.Trimming = StringTrimming.EllipsisCharacter; m_stringFormat.FormatFlags |= StringFormatFlags.NoWrap; }
public static int getMaxWidth(List<string> strings, DataGridView dataGridView) { Graphics g = dataGridView.CreateGraphics(); float maxWidth = 0.0f; foreach (string s in strings) { float width = g.MeasureString(s, dataGridView.Font).Width; if (width > maxWidth) maxWidth = width; } g.Dispose(); return (int)Math.Ceiling(maxWidth); }
public static void ConvertDg2Bmp( DataGridView dg, string sFilePath) { dg.Refresh(); dg.Select(); Graphics g = dg.CreateGraphics(); var ibitMap = new Bitmap ( dg.ClientSize.Width, dg.ClientSize.Height, g); Graphics iBitMapGr = Graphics.FromImage(ibitMap); IntPtr iBitMapHdc = iBitMapGr.GetHdc(); IntPtr meHdc = g.GetHdc(); BitBlt ( iBitMapHdc, 0, 0, dg.ClientSize.Width, dg.ClientSize.Height, meHdc, 0, 0, Src); g.ReleaseHdc(meHdc); iBitMapGr.ReleaseHdc(iBitMapHdc); if (sFilePath == "") { return; } ibitMap.Save ( sFilePath, ImageFormat.Bmp); }
public static float getGridTextWidth(DataGridView dgw, string text) { Graphics g = dgw.CreateGraphics(); // rezultat je smanjen za 5% zato sto kada u gridu namestim velicinu kolone prema najduzem tekstu, velicina // teksta koju daje metod MeasureString je nesto veca od velicine kolone. float width = g.MeasureString(text, dgw.Font).Width * 0.95f; g.Dispose(); return width; }