/// <summary> /// DATAGRIDVIEW跨越滚动截图 /// </summary> /// <param name="_View">DataGridView</param> /// <returns>图形</returns> public Image DrawViewToImage(int times, float Ftimes) { Font font = this.Font; DockStyle ds = this.Dock; bool addRows = this.AllowUserToAddRows; DataGridViewAutoSizeColumnsMode dgvscm = this.AutoSizeColumnsMode; Color backcolor = this.DefaultCellStyle.BackColor; this.DefaultCellStyle.BackColor = Color.White; pictureBox.Paint += new PaintEventHandler(pictureBox_Paint); SizeF size = new SizeF(this.Size); this.AllowUserToAddRows = false; this.Dock = DockStyle.None; pictureBox.Size = this.Size; pictureBox.Location = this.Location; Bitmap thisBmp = new Bitmap(pictureBox.Width, pictureBox.Height); this.DrawToBitmap(thisBmp, new System.Drawing.Rectangle(0, 0, pictureBox.Width, pictureBox.Height)); pictureBox.Image = thisBmp; this.Visible = false; this.Font = new Font("宋体", 9 * Ftimes, this.Font.Style, this.Font.Unit, this.Font.GdiCharSet, this.Font.GdiVerticalFont); System.Drawing.Rectangle rc = System.Windows.Forms.Screen.PrimaryScreen.Bounds; double widthScale = (double)this.DefaultScaleWidth / (double)rc.Width; this.Size = new Size((int)(size.Width * widthScale), (int)(size.Height)); this.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; this.AutoSize = true; int height = 0; for (int i = 0; i < this.Rows.Count; i++) { height += this.Rows[i].Height; } Bitmap _NewBitmap = new Bitmap((int)((this.Width) - 32), (int)(height + 5)); this.DrawToBitmap(_NewBitmap, new System.Drawing.Rectangle(0, 0, this.Width, this.Height)); pictureBox = new PictureBox(); pictureBox.Image = _NewBitmap; pictureBox.Size = new Size(_NewBitmap.Size.Width + 10, _NewBitmap.Size.Height + 5);// new Size((int)(this.Width * times), (int)(this.Height * times)); pictureBox.SizeMode = PictureBoxSizeMode.CenterImage; pictureBox.BackColor = Color.White; Bitmap newbitm = new Bitmap(pictureBox.Width, pictureBox.Height); pictureBox.DrawToBitmap(newbitm, new Rectangle(0, 0, pictureBox.Width, pictureBox.Height)); this.AutoSize = false; this.Visible = true; thisBmp.Dispose(); //_NewBitmap.Dispose(); //pictureBox.Dispose(); this.AllowUserToAddRows = addRows; this.Font = font; this.Dock = ds; this.AutoSizeColumnsMode = dgvscm; this.DefaultCellStyle.BackColor = backcolor; return(newbitm); }
/// <summary> /// Refreshes the steps. /// </summary> /// <param name="dataGridViewAutoSizeColumnsMode">The data grid view auto size columns mode.</param> private void RefreshSteps(DataGridViewAutoSizeColumnsMode dataGridViewAutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells) { this.dgvSteps.DataSource = this.steps; this.dgvSteps.Refresh(); this.dgvSteps.AutoResizeColumns(dataGridViewAutoSizeColumnsMode); this.dgvPrepareSteps.DataSource = this.prepareSteps; this.dgvPrepareSteps.Refresh(); this.dgvPrepareSteps.AutoResizeColumns(dataGridViewAutoSizeColumnsMode); }
private void btnDefault_Click(object sender, EventArgs e) { // Set default settings. menuBackColor = Color.SteelBlue; menuForeColor = Color.White; rowColor = Color.White; alternatingRowColor = Color.AliceBlue; gridlines = DataGridViewCellBorderStyle.None; autoSizeColumnMode = DataGridViewAutoSizeColumnsMode.Fill; RefreshUI(); }
// Loads the user's UI settings. private void LoadSettings() { // Menu colors. menuBackColor = Properties.Settings.Default.MenuBackColor; menuForeColor = Properties.Settings.Default.MenuForeColor; // DataGridView settings. rowColor = Properties.Settings.Default.RowColor; alternatingRowColor = Properties.Settings.Default.AlternatingRowColor; gridlines = Properties.Settings.Default.GridlinesStyle; autoSizeColumnMode = Properties.Settings.Default.AutosizeColumnsMode; }
/// <summary> /// Sets the auto-size mode for the columns. /// </summary> /// public DataGridBox SetAutoSizeColumns(DataGridViewAutoSizeColumnsMode mode) { if (this.InvokeRequired) { this.Invoke((Action)(() => SetAutoSizeColumns(mode))); return(this); } dataGridView.AutoSizeColumnsMode = mode; return(this); }
/// <summary> /// 初始化表格的列 /// </summary> /// <param name="gridView">要初始化的DataGridView</param> /// <param name="autoSizeMode">行模式</param> /// <param name="dataSource">数据源</param> public static void InitColumns(DataGridView gridView, DataGridViewAutoSizeColumnsMode autoSizeMode = DataGridViewAutoSizeColumnsMode.Fill) { gridView.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False; var value = gridView.DataSource; gridView.AutoSizeColumnsMode = autoSizeMode; gridView.EditMode = DataGridViewEditMode.EditProgrammatically; gridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; gridView.AllowUserToAddRows = false; gridView.AllowUserToDeleteRows = false; if (!(value is IList)) return; var type = value.GetType().GetGenericArguments().FirstOrDefault(); if (type != null) { var pis = type.GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(x => ExpressionReflector.IsEntityPropertyType(x.PropertyType)); var displayType = typeof(DataGridColumnAttribute); foreach (var item in pis) { var attrs = item.GetCustomAttributes(displayType, false); if (attrs.Length <= 0) continue; var dn = attrs[0] as DataGridColumnAttribute; DataGridViewColumn column; if (gridView.AutoGenerateColumns) { column = gridView.Columns[item.Name]; if (column == null) continue; if (dn == null) continue; column.HeaderText = dn.DisplayName; column.Visible = dn.Visible; if (dn.Width <= 0 || dn.Width == -1) continue; try { column.Width = dn.Width; } catch { } } else { column = new DataGridViewTextBoxColumn(); column.HeaderText = dn.DisplayName; column.Visible = dn.Visible; column.Width = dn.Width; gridView.Columns.Add(column); } } } }
private void cboColumnSizeMode_SelectedIndexChanged(object sender, EventArgs e) { // Set the ColumnSizeMode property. switch (cboAutosizeColumnsMode.Text) { case "Fit To Cells": autoSizeColumnMode = DataGridViewAutoSizeColumnsMode.AllCells; break; case "Fill": autoSizeColumnMode = DataGridViewAutoSizeColumnsMode.Fill; break; } RefreshUI(); }
/// <summary> /// Set whether or not the grid which this adapter is linked to should automatically resize itself. /// </summary> /// <param name="mode">Whether or not the grid should automatically resize itself.</param> public void SetGridLayoutMode(GridLayoutMode mode) { switch (mode) { case GridLayoutMode.Automatic: default: _newColumnAutoSizeColumnMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; _newRowAutoSizeRowMode = DataGridViewAutoSizeRowsMode.DisplayedCells; break; case GridLayoutMode.Frozen: _newColumnAutoSizeColumnMode = DataGridViewAutoSizeColumnsMode.None; _newRowAutoSizeRowMode = DataGridViewAutoSizeRowsMode.None; break; } ResetAllColumnAutoSizeModes(); }
public void BindGridViewDefault(DataTable dtSource, DataGridView sourceGrid, DataGridViewAutoSizeColumnsMode columnFillType = DataGridViewAutoSizeColumnsMode.Fill, bool hasSortingAllowed = true) { if (dtSource != null) { sourceGrid.AutoGenerateColumns = true; sourceGrid.AutoSizeColumnsMode = columnFillType; DataView defaultView = dtSource.DefaultView; BindingSource dataSource = new BindingSource(defaultView, null); sourceGrid.DataSource = dataSource; if (!hasSortingAllowed) { sourceGrid.Columns.Cast <DataGridViewColumn>() .ToList() .ForEach(f => { f.SortMode = DataGridViewColumnSortMode.NotSortable; }); } sourceGrid.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray; sourceGrid.EnableHeadersVisualStyles = false; sourceGrid.ClearSelection(); } }
//Стандартная настройка стиля таблицы public static void BaseGrigStyle(this DataGridView dgv, DataGridViewAutoSizeColumnsMode mode = DataGridViewAutoSizeColumnsMode.Fill) { dgv.MultiSelect = false; dgv.RowHeadersVisible = false; dgv.AllowUserToAddRows = false; dgv.AutoGenerateColumns = false; dgv.AutoSizeColumnsMode = mode; dgv.BackgroundColor = Color.White; dgv.ReadOnly = true; //dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgv.DefaultCellStyle.SelectionBackColor = SystemColors.GradientInactiveCaption; dgv.DefaultCellStyle.SelectionForeColor = Color.DarkBlue; dgv.DefaultCellStyle.Font = new Font("Arial", 12F, GraphicsUnit.Pixel); dgv.ScrollBars = ScrollBars.Both; dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells; dgv.DoubleBuffered(true); //Отключаем возможность перехода по enter на другую строку в гриде dgv.KeyDown += (object sender, KeyEventArgs e) => { e.SuppressKeyPress = e.KeyCode == Keys.Enter ? true : false; }; }
protected void AutoResizeColumns (DataGridViewAutoSizeColumnsMode autoSizeColumnsMode, bool fixedHeight) { for (int i = 0; i < Columns.Count; i++) { AutoResizeColumn (i, (DataGridViewAutoSizeColumnMode) autoSizeColumnsMode, fixedHeight); } }
public void AutoResizeColumns (DataGridViewAutoSizeColumnsMode autoSizeColumnsMode) { AutoResizeColumns (autoSizeColumnsMode, true); }
public DataGridView () { SetStyle (ControlStyles.Opaque, true); //SetStyle (ControlStyles.UserMouse, true); SetStyle (ControlStyles.OptimizedDoubleBuffer, true); adjustedTopLeftHeaderBorderStyle = new DataGridViewAdvancedBorderStyle(); adjustedTopLeftHeaderBorderStyle.All = DataGridViewAdvancedCellBorderStyle.Single; advancedCellBorderStyle = new DataGridViewAdvancedBorderStyle(); advancedCellBorderStyle.All = DataGridViewAdvancedCellBorderStyle.Single; advancedColumnHeadersBorderStyle = new DataGridViewAdvancedBorderStyle(); advancedColumnHeadersBorderStyle.All = DataGridViewAdvancedCellBorderStyle.Single; advancedRowHeadersBorderStyle = new DataGridViewAdvancedBorderStyle(); advancedRowHeadersBorderStyle.All = DataGridViewAdvancedCellBorderStyle.Single; alternatingRowsDefaultCellStyle = new DataGridViewCellStyle(); allowUserToAddRows = true; allowUserToDeleteRows = true; allowUserToOrderColumns = false; allowUserToResizeColumns = true; allowUserToResizeRows = true; autoGenerateColumns = true; autoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; autoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; backColor = Control.DefaultBackColor; backgroundColor = SystemColors.AppWorkspace; borderStyle = BorderStyle.FixedSingle; cellBorderStyle = DataGridViewCellBorderStyle.Single; clipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithAutoHeaderText; columnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; columnHeadersDefaultCellStyle = new DataGridViewCellStyle(); columnHeadersDefaultCellStyle.BackColor = SystemColors.Control; columnHeadersDefaultCellStyle.ForeColor = SystemColors.WindowText; columnHeadersDefaultCellStyle.SelectionBackColor = SystemColors.Highlight; columnHeadersDefaultCellStyle.SelectionForeColor = SystemColors.HighlightText; columnHeadersDefaultCellStyle.Font = this.Font; columnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; columnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.True; columnHeadersHeight = 23; columnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; columnHeadersVisible = true; columns = CreateColumnsInstance(); columns.CollectionChanged += OnColumnCollectionChanged; currentCellAddress = new Point (-1, -1); dataMember = String.Empty; defaultCellStyle = new DataGridViewCellStyle(); defaultCellStyle.BackColor = SystemColors.Window; defaultCellStyle.ForeColor = SystemColors.ControlText; defaultCellStyle.SelectionBackColor = SystemColors.Highlight; defaultCellStyle.SelectionForeColor = SystemColors.HighlightText; defaultCellStyle.Font = this.Font; defaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; defaultCellStyle.WrapMode = DataGridViewTriState.False; editMode = DataGridViewEditMode.EditOnKeystrokeOrF2; firstDisplayedScrollingColumnHiddenWidth = 0; isCurrentCellDirty = false; multiSelect = true; readOnly = false; rowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; rowHeadersDefaultCellStyle = (DataGridViewCellStyle) columnHeadersDefaultCellStyle.Clone (); rowHeadersVisible = true; rowHeadersWidth = 41; rowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing; rows = CreateRowsInstance(); rowsDefaultCellStyle = new DataGridViewCellStyle(); selectionMode = DataGridViewSelectionMode.RowHeaderSelect; showCellErrors = true; showEditingIcon = true; scrollBars = ScrollBars.Both; userSetCursor = Cursor.Current; virtualMode = false; horizontalScrollBar = new HScrollBar(); horizontalScrollBar.Scroll += OnHScrollBarScroll; horizontalScrollBar.Visible = false; verticalScrollBar = new VScrollBar(); verticalScrollBar.Scroll += OnVScrollBarScroll; verticalScrollBar.Visible = false; Controls.AddRange (new Control[] {horizontalScrollBar, verticalScrollBar}); }
public void DataGridViewColumnCollection_Add_VisibleFrozenColumnInvalidAutoSize_ThrowsInvalidOperationException(DataGridViewAutoSizeColumnsMode autoSizeColumnsMode, DataGridViewAutoSizeColumnMode autoSizeMode) { using var control = new DataGridView { AutoSizeColumnsMode = autoSizeColumnsMode }; var collection = new DataGridViewColumnCollection(control); using var column = new DataGridViewColumn(new SubDataGridViewCell()) { AutoSizeMode = autoSizeMode, Frozen = true }; Assert.Throws <InvalidOperationException>(() => control.Columns.Add(column)); }
public void DataGridViewColumnCollection_Add_CustomAutoSizeMode_Success(bool columnHeadersVisible, bool visible, bool frozen, DataGridViewAutoSizeColumnsMode columnsAutoSizeMode, DataGridViewAutoSizeColumnMode autoSizeMode) { using var control = new DataGridView { AutoSizeColumnsMode = columnsAutoSizeMode, ColumnHeadersVisible = columnHeadersVisible }; DataGridViewColumnCollection collection = control.Columns; using var column1 = new DataGridViewColumn(new SubDataGridViewCell()) { AutoSizeMode = autoSizeMode, Frozen = frozen, Visible = visible }; using var column2 = new DataGridViewColumn(new SubDataGridViewCell()) { AutoSizeMode = autoSizeMode, Frozen = frozen, Visible = visible }; // Add one. collection.Add(column1); Assert.Equal(new DataGridViewColumn[] { column1 }, collection.Cast <DataGridViewColumn>()); Assert.Same(control, column1.DataGridView); Assert.Equal(0, column1.Index); Assert.Equal(0, column1.DisplayIndex); Assert.False(control.IsHandleCreated); // Add another. collection.Add(column2); Assert.Equal(new DataGridViewColumn[] { column1, column2 }, collection.Cast <DataGridViewColumn>()); Assert.Same(control, column1.DataGridView); Assert.Equal(0, column1.Index); Assert.Equal(0, column1.DisplayIndex); Assert.Same(control, column2.DataGridView); Assert.Equal(1, column2.Index); Assert.Equal(1, column2.DisplayIndex); Assert.False(control.IsHandleCreated); }
public DataGridView() { base.SetStyle(ControlStyles.UserMouse | ControlStyles.Opaque | ControlStyles.UserPaint, true); base.SetStyle(ControlStyles.SupportsTransparentBackColor, false); base.SetState2(0x800, true); this.dataGridViewState1 = new BitVector32(0); this.dataGridViewState2 = new BitVector32(0); this.dataGridViewOper = new BitVector32(0); this.dataGridViewState1[0x80001b] = true; this.dataGridViewState2[0x60003e7] = true; this.displayedBandsInfo = new DisplayedBandsData(); this.lstRows = new ArrayList(); this.converters = new Hashtable(8); this.pens = new Hashtable(8); this.brushes = new Hashtable(10); this.gridPen = new Pen(DefaultGridColor); this.selectedBandIndexes = new DataGridViewIntLinkedList(); this.individualSelectedCells = new DataGridViewCellLinkedList(); this.individualReadOnlyCells = new DataGridViewCellLinkedList(); this.advancedCellBorderStyle = new DataGridViewAdvancedBorderStyle(this, DataGridViewAdvancedCellBorderStyle.OutsetDouble, DataGridViewAdvancedCellBorderStyle.OutsetPartial, DataGridViewAdvancedCellBorderStyle.InsetDouble); this.advancedRowHeadersBorderStyle = new DataGridViewAdvancedBorderStyle(this); this.advancedColumnHeadersBorderStyle = new DataGridViewAdvancedBorderStyle(this); this.advancedCellBorderStyle.All = DataGridViewAdvancedCellBorderStyle.Single; this.advancedRowHeadersBorderStyle.All = DataGridViewAdvancedCellBorderStyle.OutsetPartial; this.advancedColumnHeadersBorderStyle.All = DataGridViewAdvancedCellBorderStyle.OutsetPartial; this.borderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.dataGridViewState1[0x80] = true; this.selectionMode = DataGridViewSelectionMode.RowHeaderSelect; this.editMode = DataGridViewEditMode.EditOnKeystrokeOrF2; this.autoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; this.autoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; this.columnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; this.rowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing; this.clipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithAutoHeaderText; this.layout = new LayoutData(); this.layout.TopLeftHeader = Rectangle.Empty; this.layout.ColumnHeaders = Rectangle.Empty; this.layout.RowHeaders = Rectangle.Empty; this.layout.ColumnHeadersVisible = true; this.layout.RowHeadersVisible = true; this.layout.ClientRectangle = base.ClientRectangle; this.scrollBars = System.Windows.Forms.ScrollBars.Both; this.horizScrollBar.RightToLeft = RightToLeft.Inherit; this.horizScrollBar.AccessibleName = System.Windows.Forms.SR.GetString("DataGridView_AccHorizontalScrollBarAccName"); this.horizScrollBar.Top = base.ClientRectangle.Height - this.horizScrollBar.Height; this.horizScrollBar.Left = 0; this.horizScrollBar.Visible = false; this.horizScrollBar.Scroll += new ScrollEventHandler(this.DataGridViewHScrolled); base.Controls.Add(this.horizScrollBar); this.vertScrollBar.Top = 0; this.vertScrollBar.AccessibleName = System.Windows.Forms.SR.GetString("DataGridView_AccVerticalScrollBarAccName"); this.vertScrollBar.Left = base.ClientRectangle.Width - this.vertScrollBar.Width; this.vertScrollBar.Visible = false; this.vertScrollBar.Scroll += new ScrollEventHandler(this.DataGridViewVScrolled); base.Controls.Add(this.vertScrollBar); this.ptCurrentCell = new Point(-1, -1); this.ptAnchorCell = new Point(-1, -1); this.ptMouseDownCell = new Point(-2, -2); this.ptMouseEnteredCell = new Point(-2, -2); this.ptToolTipCell = new Point(-1, -1); this.ptMouseDownGridCoord = new Point(-1, -1); this.sortOrder = System.Windows.Forms.SortOrder.None; this.lastMouseClickInfo.timeStamp = 0L; this.WireScrollBarsEvents(); base.PerformLayout(); this.toolTipControl = new DataGridViewToolTip(this); base.Invalidate(); }
/// <include file='doc\DataGridView.uex' path='docs/doc[@for="DataGridView.AutoResizeColumns2"]/*' /> protected void AutoResizeColumns(DataGridViewAutoSizeColumnsMode autoSizeColumnsMode, bool fixedHeight) { for (int columnIndex = 0; columnIndex < this.Columns.Count; columnIndex++) { AutoResizeColumn(columnIndex, (DataGridViewAutoSizeColumnMode)autoSizeColumnsMode, fixedHeight); } }
/// <summary> /// Set the column's auto resize mode /// </summary> /// <param name="mode"></param> public void AutoResizeColumns(DataGridViewAutoSizeColumnsMode mode) { DSV.AutoResizeColumns(mode); }
public GranitXMLFormSettings(string filePath, DataGridViewAutoSizeColumnsMode alignTable) { FilePath = filePath; AlignTable = alignTable; }
/// <summary> /// Sets the auto-size mode for the columns. /// </summary> /// public DataGridBox SetAutoSizeColumns(DataGridViewAutoSizeColumnsMode mode) { if (this.InvokeRequired) { this.Invoke((Action)(() => SetAutoSizeColumns(mode))); return this; } dataGridView.AutoSizeColumnsMode = mode; return this; }
protected void AutoResizeColumns(DataGridViewAutoSizeColumnsMode autoSizeColumnsMode, bool fixedHeight);
public void AutoResizeColumns(DataGridViewAutoSizeColumnsMode autoSizeColumnsMode) { }
internal static void AutoResizeColumns(DataGridViewAutoSizeColumnsMode allCells) { throw new NotImplementedException(); }
#pragma warning restore 0414 #endif /// <include file='doc\DataGridView.uex' path='docs/doc[@for="DataGridView.DataGridView"]/*' /> /// <devdoc> /// <para>Initializes a new instance of the <see cref='System.Windows.Forms.DataGridView'/> class.</para> /// </devdoc> public DataGridView() { SetStyle(ControlStyles.UserPaint | ControlStyles.Opaque | ControlStyles.UserMouse, true); SetStyle(ControlStyles.SupportsTransparentBackColor, false); // this class overrides GetPreferredSizeCore, let Control automatically cache the result SetState2(STATE2_USEPREFERREDSIZECACHE, true); this.dataGridViewState1 = new System.Collections.Specialized.BitVector32(0x00000000); this.dataGridViewState2 = new System.Collections.Specialized.BitVector32(0x00000000); this.dataGridViewOper = new System.Collections.Specialized.BitVector32(0x00000000); this.dataGridViewState1[ DATAGRIDVIEWSTATE1_columnHeadersVisible | DATAGRIDVIEWSTATE1_rowHeadersVisible | DATAGRIDVIEWSTATE1_autoGenerateColumns | DATAGRIDVIEWSTATE1_allowUserToAddRows | DATAGRIDVIEWSTATE1_allowUserToDeleteRows ] = true; this.dataGridViewState2[ DATAGRIDVIEWSTATE2_showEditingIcon | DATAGRIDVIEWSTATE2_enableHeadersVisualStyles | DATAGRIDVIEWSTATE2_mouseEnterExpected | DATAGRIDVIEWSTATE2_allowUserToResizeColumns | DATAGRIDVIEWSTATE2_allowUserToResizeRows | DATAGRIDVIEWSTATE2_showCellToolTips | DATAGRIDVIEWSTATE2_showCellErrors | DATAGRIDVIEWSTATE2_showRowErrors | DATAGRIDVIEWSTATE2_allowHorizontalScrollbar | DATAGRIDVIEWSTATE2_usedFillWeightsDirty ] = true; this.displayedBandsInfo = new DisplayedBandsData(); this.lstRows = new ArrayList(); this.converters = new Hashtable(8); this.pens = new Hashtable(8); this.brushes = new Hashtable(10); this.gridPen = new Pen(DefaultGridColor); this.selectedBandIndexes = new DataGridViewIntLinkedList(); this.individualSelectedCells = new DataGridViewCellLinkedList(); this.individualReadOnlyCells = new DataGridViewCellLinkedList(); this.advancedCellBorderStyle = new DataGridViewAdvancedBorderStyle(this, DataGridViewAdvancedCellBorderStyle.OutsetDouble, DataGridViewAdvancedCellBorderStyle.OutsetPartial, DataGridViewAdvancedCellBorderStyle.InsetDouble); this.advancedRowHeadersBorderStyle = new DataGridViewAdvancedBorderStyle(this); this.advancedColumnHeadersBorderStyle = new DataGridViewAdvancedBorderStyle(this); this.advancedCellBorderStyle.All = defaultAdvancedCellBorderStyle; this.advancedRowHeadersBorderStyle.All = defaultAdvancedRowHeadersBorderStyle; this.advancedColumnHeadersBorderStyle.All = defaultAdvancedColumnHeadersBorderStyle; this.borderStyle = defaultBorderStyle; this.dataGridViewState1[DATAGRIDVIEWSTATE1_multiSelect] = true; this.selectionMode = defaultSelectionMode; this.editMode = defaultEditMode; this.autoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; this.autoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; this.columnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; this.rowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing; this.clipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithAutoHeaderText; this.layout = new LayoutData(); this.layout.TopLeftHeader = Rectangle.Empty; this.layout.ColumnHeaders = Rectangle.Empty; this.layout.RowHeaders = Rectangle.Empty; this.layout.ColumnHeadersVisible = true; this.layout.RowHeadersVisible = true; this.layout.ClientRectangle = this.ClientRectangle; this.scrollBars = ScrollBars.Both; this.horizScrollBar.RightToLeft = RightToLeft.Inherit; this.horizScrollBar.AccessibleName = SR.GetString(SR.DataGridView_AccHorizontalScrollBarAccName); this.horizScrollBar.Top = this.ClientRectangle.Height - horizScrollBar.Height; this.horizScrollBar.Left = 0; this.horizScrollBar.Visible = false; this.horizScrollBar.Scroll += new ScrollEventHandler(DataGridViewHScrolled); this.Controls.Add(this.horizScrollBar); this.vertScrollBar.Top = 0; this.vertScrollBar.AccessibleName = SR.GetString(SR.DataGridView_AccVerticalScrollBarAccName); this.vertScrollBar.Left = this.ClientRectangle.Width - vertScrollBar.Width; this.vertScrollBar.Visible = false; this.vertScrollBar.Scroll += new ScrollEventHandler(DataGridViewVScrolled); this.Controls.Add(this.vertScrollBar); this.ptCurrentCell = new Point(-1, -1); this.ptAnchorCell = new Point(-1, -1); this.ptMouseDownCell = new Point(-2, -2); this.ptMouseEnteredCell = new Point(-2, -2); this.ptToolTipCell = new Point(-1, -1); this.ptMouseDownGridCoord = new Point(-1, -1); this.sortOrder = SortOrder.None; this.lastMouseClickInfo.timeStamp = 0; WireScrollBarsEvents(); PerformLayout(); this.toolTipControl = new DataGridViewToolTip(this); Invalidate(); }
/// <summary> /// 初始化表格的列 /// </summary> /// <param name="gridView">要初始化的DataGridView</param> /// <param name="autoSizeMode">行模式</param> /// <param name="dataSource">数据源</param> public static void InitColumns(DataGridView gridView, DataGridViewAutoSizeColumnsMode autoSizeMode = DataGridViewAutoSizeColumnsMode.Fill) { gridView.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False; var value = gridView.DataSource; gridView.AutoSizeColumnsMode = autoSizeMode; gridView.EditMode = DataGridViewEditMode.EditProgrammatically; gridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; gridView.AllowUserToAddRows = false; gridView.AllowUserToDeleteRows = false; if (!(value is IList)) { return; } var type = value.GetType().GetGenericArguments().FirstOrDefault(); if (type != null) { var pis = type.GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(x => ExpressionReflector.IsEntityPropertyType(x.PropertyType)); var displayType = typeof(DataGridColumnAttribute); foreach (var item in pis) { var attrs = item.GetCustomAttributes(displayType, false); if (attrs.Length <= 0) { continue; } var dn = attrs[0] as DataGridColumnAttribute; DataGridViewColumn column; if (gridView.AutoGenerateColumns) { column = gridView.Columns[item.Name]; if (column == null) { continue; } if (dn == null) { continue; } column.HeaderText = dn.DisplayName; column.Visible = dn.Visible; if (dn.Width <= 0 || dn.Width == -1) { continue; } try { column.Width = dn.Width; } catch { } } else { column = new DataGridViewTextBoxColumn(); column.HeaderText = dn.DisplayName; column.Visible = dn.Visible; column.Width = dn.Width; gridView.Columns.Add(column); } } } }