/// ------------------------------------------------------------------------------------
		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;
		}
예제 #3
0
 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);
        }
예제 #5
0
파일: Report.cs 프로젝트: stankela/bilten
 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;
 }