Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs')
-rw-r--r--mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs2985
1 files changed, 2985 insertions, 0 deletions
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs
new file mode 100644
index 00000000000..4ec44b314cc
--- /dev/null
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridView.cs
@@ -0,0 +1,2985 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
+//
+// Author:
+// Pedro Martínez Juliá <pedromj@gmail.com>
+//
+
+
+#if NET_2_0
+
+using System;
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+using System.Drawing;
+using System.Collections;
+
+namespace System.Windows.Forms {
+
+ [ComVisibleAttribute(true)]
+ [ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
+ public class DataGridView : Control, ISupportInitialize {
+
+ private DataGridViewAdvancedBorderStyle adjustedTopLeftHeaderBorderStyle;
+ private DataGridViewAdvancedBorderStyle advancedCellBorderStyle;
+ private DataGridViewAdvancedBorderStyle advancedColumnHeadersBorderStyle;
+ private DataGridViewAdvancedBorderStyle advancedRowHeadersBorderStyle;
+ private bool allowUserToAddRows;
+ private bool allowUserToDeleteRows;
+ private bool allowUserToOrderColumns;
+ private bool allowUserToResizeColumns;
+ private bool allowUserToResizeRows;
+ private DataGridViewCellStyle alternatingRowsDefaultCellStyle;
+ private bool autoGenerateColumns;
+ private bool autoSize;
+ private DataGridViewAutoSizeColumnsMode autoSizeColumnsMode;
+ private DataGridViewAutoSizeRowsMode autoSizeRowsMode;
+ private Color backColor;
+ private Color backgroundColor;
+ private Image backgroundImage;
+ private ImageLayout backgroundImageLayout;
+ private BorderStyle borderStyle;
+ private DataGridViewCellBorderStyle cellBorderStyle;
+ private DataGridViewClipboardCopyMode clipboardCopyMode;
+ private DataGridViewHeaderBorderStyle columnHeadersBorderStyle;
+ private DataGridViewCellStyle columnHeadersDefaultCellStyle;
+ private int columnHeadersHeight;
+ private DataGridViewColumnHeadersHeightSizeMode columnHeadersHeightSizeMode;
+ private bool columnHeadersVisible;
+ private DataGridViewColumnCollection columns;
+ private DataGridViewCell currentCell;
+ private Point currentCellAddress;
+ private DataGridViewRow currentRow;
+ private string dataMember;
+ private object dataSource;
+ private DataGridViewCellStyle defaultCellStyle;
+ private Control editingControl;
+ private DataGridViewEditMode editMode;
+ private bool enableHeadersVisualStyles;
+ private DataGridViewCell firstDisplayedCell;
+ private int firstDisplayedScrollingColumnHiddenWidth;
+ private int firstDisplayedScrollingColumnIndex;
+ private int firstDisplayedScrollingRowIndex;
+ private Font font = Control.DefaultFont;
+ private Color foreColor = Control.DefaultForeColor;
+ private Color gridColor = Color.FromKnownColor(KnownColor.ControlDarkDark);
+ private int horizontalScrollingOffset;
+ private bool isCurrentCellDirty;
+ private bool isCurrentRowDirty;
+ private bool multiSelect;
+ private bool readOnly;
+ private DataGridViewHeaderBorderStyle rowHeadersBorderStyle;
+ private DataGridViewCellStyle rowHeadersDefaultCellStyle;
+ private bool rowHeadersVisible;
+ private int rowHeadersWidth;
+ private DataGridViewRowHeadersWidthSizeMode rowHeadersWidthSizeMode;
+ private DataGridViewRowCollection rows;
+ private DataGridViewCellStyle rowsDefaultCellStyle;
+ private DataGridViewRow rowTemplate;
+ private ScrollBars scrollBars;
+ private DataGridViewSelectionMode selectionMode;
+ private bool showCellErrors;
+ private bool showCellToolTips;
+ private bool showEditingIcon;
+ private bool showRowErrors;
+ private DataGridViewColumn sortedColumn = null;
+ private SortOrder sortOrder;
+ private bool standardTab;
+ private string text;
+ private DataGridViewHeaderCell topLeftHeaderCell;
+ private Cursor userSetCursor;
+ private int verticalScrollingOffset;
+ private bool virtualMode;
+ private Size defaultSize;
+ private HScrollBar horizontalScrollBar;
+ private VScrollBar verticalScrollBar;
+
+ internal int gridWidth;
+ internal int gridHeight;
+
+ public DataGridView () {
+ 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.None;
+ 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;
+ dataMember = String.Empty;
+ defaultCellStyle = (DataGridViewCellStyle) columnHeadersDefaultCellStyle.Clone();
+ editMode = DataGridViewEditMode.EditOnKeystrokeOrF2;
+ multiSelect = true;
+ readOnly = false;
+ rowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
+ rowHeadersDefaultCellStyle = (DataGridViewCellStyle) defaultCellStyle.Clone();
+ rowHeadersVisible = true;
+ rowHeadersWidth = 43;
+ rowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing;
+ rows = CreateRowsInstance();
+ rowsDefaultCellStyle = new DataGridViewCellStyle();
+ selectionMode = DataGridViewSelectionMode.RowHeaderSelect;
+ showCellErrors = true;
+ showEditingIcon = true;
+ userSetCursor = Cursor.Current;
+ virtualMode = false;
+
+ horizontalScrollBar = new HScrollBar();
+ horizontalScrollBar.Dock = DockStyle.Bottom;
+ horizontalScrollBar.Scroll += OnHScrollBarScroll;
+ horizontalScrollBar.Visible = false;
+ verticalScrollBar = new VScrollBar();
+ verticalScrollBar.Dock = DockStyle.Right;
+ verticalScrollBar.Scroll += OnVScrollBarScroll;
+ verticalScrollBar.Visible = false;
+ }
+
+ public void BeginInit () {
+ }
+
+ public void EndInit () {
+ }
+
+ // Propiedades
+
+ public virtual DataGridViewAdvancedBorderStyle AdjustedTopLeftHeaderBorderStyle {
+ get { return adjustedTopLeftHeaderBorderStyle; }
+ }
+
+ public DataGridViewAdvancedBorderStyle AdvancedCellBorderStyle {
+ get { return advancedCellBorderStyle; }
+ }
+
+ public DataGridViewAdvancedBorderStyle AdvancedColumnHeadersBorderStyle {
+ get { return advancedColumnHeadersBorderStyle; }
+ }
+
+ public DataGridViewAdvancedBorderStyle AdvancedRowHeadersBorderStyle {
+ get { return advancedRowHeadersBorderStyle; }
+ }
+
+ public bool AllowUserToAddRows {
+ get { return allowUserToAddRows; }
+ set {
+ if (allowUserToAddRows != value) {
+ allowUserToAddRows = value;
+ OnAllowUserToAddRowsChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public bool AllowUserToDeleteRows {
+ get { return allowUserToDeleteRows; }
+ set {
+ if (allowUserToDeleteRows != value) {
+ allowUserToDeleteRows = value;
+ OnAllowUserToDeleteRowsChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public bool AllowUserToOrderColumns {
+ get { return allowUserToOrderColumns; }
+ set {
+ if (allowUserToOrderColumns != value) {
+ allowUserToOrderColumns = value;
+ OnAllowUserToOrderColumnsChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public bool AllowUserToResizeColumns {
+ get { return allowUserToResizeColumns; }
+ set {
+ if (allowUserToResizeColumns != value) {
+ allowUserToResizeColumns = value;
+ OnAllowUserToResizeColumnsChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public bool AllowUserToResizeRows {
+ get { return allowUserToResizeRows; }
+ set {
+ if (allowUserToResizeRows != value) {
+ allowUserToResizeRows = value;
+ OnAllowUserToResizeRowsChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewCellStyle AlternatingRowsDefaultCellStyle {
+ get { return alternatingRowsDefaultCellStyle; }
+ set {
+ if (alternatingRowsDefaultCellStyle != value) {
+ alternatingRowsDefaultCellStyle = value;
+ OnAlternatingRowsDefaultCellStyleChanged(EventArgs.Empty);
+ Invalidate();
+ }
+ }
+ }
+
+ public bool AutoGenerateColumns {
+ get { return autoGenerateColumns; }
+ set {
+ if (autoGenerateColumns != value) {
+ autoGenerateColumns = value;
+ OnAutoGenerateColumnsChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ //public override bool AutoSize {
+ public bool AutoSize {
+ get { return autoSize; }
+ set {
+ if (autoSize != value) {
+ autoSize = value;
+ //OnAutoSizeChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewAutoSizeColumnsMode AutoSizeColumnsMode {
+ get { return autoSizeColumnsMode; }
+ set {
+ if (!Enum.IsDefined(typeof(DataGridViewAutoSizeColumnsMode), value)) {
+ throw new InvalidEnumArgumentException("Value is not valid DataGridViewAutoSizeColumnsMode.");
+ }
+ if (value == DataGridViewAutoSizeColumnsMode.ColumnHeader && columnHeadersVisible == false) {
+ foreach (DataGridViewColumn col in columns) {
+ if (col.AutoSizeMode == DataGridViewAutoSizeColumnMode.NotSet) {
+ throw new InvalidOperationException("Cant set this property to ColumnHeader in this DataGridView.");
+ }
+ }
+ }
+ if (value == DataGridViewAutoSizeColumnsMode.Fill) {
+ foreach (DataGridViewColumn col in columns) {
+ if (col.AutoSizeMode == DataGridViewAutoSizeColumnMode.NotSet) {
+ if (col.Frozen) {
+ throw new InvalidOperationException("Cant set this property to Fill in this DataGridView.");
+ }
+ }
+ }
+ }
+ autoSizeColumnsMode = value;
+ }
+ }
+
+ public DataGridViewAutoSizeRowsMode AutoSizeRowsMode {
+ get { return autoSizeRowsMode; }
+ set {
+ if (autoSizeRowsMode != value) {
+ if (!Enum.IsDefined(typeof(DataGridViewAutoSizeRowsMode), value)) {
+ throw new InvalidEnumArgumentException("Value is not valid DataGridViewRowsMode.");
+ }
+ if ((value == DataGridViewAutoSizeRowsMode.AllHeaders || value == DataGridViewAutoSizeRowsMode.DisplayedHeaders) && rowHeadersVisible == false) {
+ throw new InvalidOperationException("Cant set this property to AllHeaders or DisplayedHeaders in this DataGridView.");
+ }
+ autoSizeRowsMode = value;
+ OnAutoSizeRowsModeChanged(new DataGridViewAutoSizeModeEventArgs(false));
+ ////////////////////////////////////////////////////////////////
+ }
+ }
+ }
+
+ public override Color BackColor {
+ get { return backColor; }
+ set {
+ if (backColor != value) {
+ backColor = value;
+ OnBackColorChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public Color BackgroundColor {
+ get { return backgroundColor; }
+ set {
+ if (backgroundColor != value) {
+ if (value == Color.Empty) {
+ throw new ArgumentException("Cant set an Empty color.");
+ }
+ backgroundColor = value;
+ OnBackgroundColorChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public override Image BackgroundImage {
+ get { return backgroundImage; }
+ set {
+ if (backgroundImage != value) {
+ backgroundImage = value;
+ OnBackgroundImageChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ //public override ImageLayout BackgroundImageLayout {
+ public ImageLayout BackgroundImageLayout {
+ get { return backgroundImageLayout; }
+ set {
+ if (backgroundImageLayout != value) {
+ backgroundImageLayout = value;
+ //OnBackgroundImageLayoutChanged(EventArg.Empty);
+ }
+ }
+ }
+
+ public BorderStyle BorderStyle {
+ get { return borderStyle; }
+ set {
+ if (borderStyle != value) {
+ if (!Enum.IsDefined(typeof(BorderStyle), value)) {
+ throw new InvalidEnumArgumentException("Invalid border style.");
+ }
+ borderStyle = value;
+ OnBorderStyleChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewCellBorderStyle CellBorderStyle {
+ get { return cellBorderStyle; }
+ set {
+ if (cellBorderStyle != value) {
+ cellBorderStyle = value;
+ OnCellBorderStyleChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewClipboardCopyMode ClipboardCopyMode {
+ get { return clipboardCopyMode; }
+ set { clipboardCopyMode = value; }
+ }
+
+ public int ColumnCount {
+ get { return columns.Count; }
+ set {
+ if (value < 0) {
+ throw new ArgumentException("ColumnCount must be >= 0.");
+ }
+ if (dataSource != null) {
+ throw new InvalidOperationException("Cant change column count if DataSource is set.");
+ }
+ if (value < columns.Count) {
+ for (int i = value; i < columns.Count; i++) {
+ columns.RemoveAt(i);
+ }
+ }
+ else if (value > columns.Count) {
+ for (int i = 0; i < value; i++) {
+ DataGridViewColumn col = new DataGridViewColumn();
+ columns.Add(col);
+ }
+ }
+ }
+ }
+
+ public DataGridViewHeaderBorderStyle ColumnHeadersBorderStyle {
+ get { return columnHeadersBorderStyle; }
+ set {
+ if (columnHeadersBorderStyle != value) {
+ columnHeadersBorderStyle = value;
+ OnColumnHeadersBorderStyleChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewCellStyle ColumnHeadersDefaultCellStyle {
+ get { return columnHeadersDefaultCellStyle; }
+ set {
+ if (columnHeadersDefaultCellStyle != value) {
+ columnHeadersDefaultCellStyle = value;
+ OnColumnHeadersDefaultCellStyleChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public int ColumnHeadersHeight {
+ get { return columnHeadersHeight; }
+ set {
+ if (columnHeadersHeight != value) {
+ if (value < 4) {
+ throw new ArgumentException("Column headers height cant be less than 4.");
+ }
+ columnHeadersHeight = value;
+ OnColumnHeadersHeightChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewColumnHeadersHeightSizeMode ColumnHeadersHeightSizeMode {
+ get { return columnHeadersHeightSizeMode; }
+ set {
+ if (columnHeadersHeightSizeMode != value) {
+ if (!Enum.IsDefined(typeof(DataGridViewColumnHeadersHeightSizeMode), value)) {
+ throw new InvalidEnumArgumentException("Value is not a valid DataGridViewColumnHeadersHeightSizeMode.");
+ }
+ columnHeadersHeightSizeMode = value;
+ OnColumnHeadersHeightSizeModeChanged(new DataGridViewAutoSizeModeEventArgs(false));
+ }
+ }
+ }
+
+ public bool ColumnHeadersVisible {
+ get { return columnHeadersVisible; }
+ set { columnHeadersVisible = value; }
+ }
+
+ public DataGridViewColumnCollection Columns {
+ get { return columns; }
+ }
+
+ public DataGridViewCell CurrentCell {
+ get { return currentCell; }
+ set {
+ /////////////////////////////////////////////////////
+ /// *** InvalidOperationException ***
+ /// Changes to the specified cell cannot be committed
+ /// to the data cache, or the new cell is in a hidden
+ /// row.
+ /////////////////////////////////////////////////////
+ if (value.DataGridView != this) {
+ throw new ArgumentException("The cell is not in this DataGridView.");
+ }
+ currentCell = value;
+ }
+ }
+
+ public Point CurrentCellAddress {
+ get { return currentCellAddress; }
+ }
+
+ public DataGridViewRow CurrentRow {
+ get { return currentRow; }
+ }
+
+ public string DataMember {
+ get { return dataMember; }
+ set {
+ if (dataMember != value) {
+ dataMember = value;
+ OnDataMemberChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public object DataSource {
+ get { return dataSource; }
+ set {
+ if (dataSource != value) {
+ /* The System.Windows.Forms.DataGridView class supports the standard Windows Forms data-binding model. This means the data source can be of any type that implements:
+ - the System.Collections.IList interface, including one-dimensional arrays.
+ - the System.ComponentModel.IListSource interface, such as the System.Data.DataTable and System.Data.DataSet classes.
+ - the System.ComponentModel.IBindingList interface, such as the System.ComponentModel.Collections.BindingList<> class.
+ - the System.ComponentModel.IBindingListView interface, such as the System.Windows.Forms.BindingSource class.
+ */
+ if (!(value is IList) && !(value is IListSource) && !(value is IBindingList) && !(value is IBindingListView)) {
+ throw new NotSupportedException("Type cant be binded.");
+ }
+ dataSource = value;
+ OnDataSourceChanged(EventArgs.Empty);
+ // DataBinding
+ if (value is IList) {
+ BindIList(value as IList);
+ }
+ else if (value is IListSource) {
+ BindIListSource(value as IListSource);
+ }
+ else if (value is IBindingList) {
+ BindIBindingList(value as IBindingList);
+ }
+ else if (value is IBindingListView) {
+ BindIBindingListView(value as IBindingListView);
+ //bool cosa = ((value as IBindingListView).SortDescriptions as IList).IsFixedSize;
+ }
+ OnDataBindingComplete(new DataGridViewBindingCompleteEventArgs(ListChangedType.Reset));
+ }
+ }
+ }
+
+ public DataGridViewCellStyle DefaultCellStyle {
+ get { return defaultCellStyle; }
+ set {
+ if (defaultCellStyle != value) {
+ defaultCellStyle = value;
+ OnDefaultCellStyleChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public override Rectangle DisplayRectangle {
+ get { return base.DisplayRectangle; }
+ }
+
+ public Control EditingControl {
+ get {
+ if (currentCell == null || !currentCell.IsInEditMode) {
+ return null;
+ }
+ return (Control) Activator.CreateInstance(currentCell.EditType);
+ }
+ }
+
+ public Panel EditingPanel {
+ get { throw new NotImplementedException(); }
+ }
+
+ public DataGridViewEditMode EditMode {
+ get { return editMode; }
+ set {
+ if (editMode != value) {
+ editMode = value;
+ OnEditModeChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public bool EnableHeadersVisualStyles {
+ get { return enableHeadersVisualStyles; }
+ set { enableHeadersVisualStyles = value; }
+ }
+
+ public DataGridViewCell FirstDisplayedCell {
+ get { return firstDisplayedCell; }
+ set {
+ if (value.DataGridView != this) {
+ throw new ArgumentException("The cell is not in this DataGridView.");
+ }
+ firstDisplayedCell = value;
+ }
+ }
+
+ public int FirstDisplayedScrollingColumnHiddenWidth {
+ get { return firstDisplayedScrollingColumnHiddenWidth; }
+ }
+
+ public int FirstDisplayedScrollingColumnIndex {
+ get { return firstDisplayedScrollingColumnIndex; }
+ set { firstDisplayedScrollingColumnIndex = value; }
+ }
+
+ public int FirstDisplayedScrollingRowIndex {
+ get { return firstDisplayedScrollingRowIndex; }
+ set { firstDisplayedScrollingRowIndex = value; }
+ }
+
+ public override Font Font {
+ get { return font; }
+ set {
+ if (font != value) {
+ font = value;
+ OnFontChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public override Color ForeColor {
+ get { return foreColor; }
+ set {
+ if (foreColor != value) {
+ foreColor = value;
+ OnForeColorChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public Color GridColor {
+ get { return gridColor; }
+ set {
+ if (gridColor != value) {
+ if (value == Color.Empty) {
+ throw new ArgumentException("Cant set an Empty color.");
+ }
+ gridColor = value;
+ OnGridColorChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public int HorizontalScrollingOffset {
+ get { return horizontalScrollingOffset; }
+ set { horizontalScrollingOffset = value; }
+ }
+
+ public bool IsCurrentCellDirty {
+ get { return isCurrentCellDirty; }
+ }
+
+ public bool IsCurrentCellInEditMode {
+ get {
+ if (currentCell == null) {
+ return false;
+ }
+ return currentCell.IsInEditMode;
+ }
+ }
+
+ public bool IsCurrentRowDirty {
+ get {
+ if (!virtualMode) {
+ return IsCurrentCellDirty;
+ }
+ // Calcular
+ throw new NotImplementedException();
+ }
+ }
+
+ public DataGridViewCell this [int columnIndex, int rowIndex] {
+ get { return rows[rowIndex].Cells[columnIndex]; }
+ set { rows[rowIndex].Cells[columnIndex] = value; }
+ }
+
+ public DataGridViewCell this [string columnName, int rowIndex] {
+ get {
+ int columnIndex = -1;
+ foreach (DataGridViewColumn col in columns) {
+ if (col.Name == columnName) {
+ columnIndex = col.Index;
+ break;
+ }
+ }
+ return this[columnIndex, rowIndex];
+ }
+ set {
+ int columnIndex = -1;
+ foreach (DataGridViewColumn col in columns) {
+ if (col.Name == columnName) {
+ columnIndex = col.Index;
+ break;
+ }
+ }
+ this[columnIndex, rowIndex] = value;
+ }
+ }
+
+ public bool MultiSelect {
+ get { return multiSelect; }
+ set {
+ if (multiSelect != value) {
+ multiSelect = value;
+ OnMultiSelectChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public int NewRowIndex {
+ get {
+ if (!allowUserToAddRows) {
+ return -1;
+ }
+ return rows.Count - 1;
+ }
+ }
+
+ public new Padding Padding {
+ get { return Padding.Empty; }
+ set { }
+ }
+
+ public bool ReadOnly {
+ get { return readOnly; }
+ set {
+ if (readOnly != value) {
+ readOnly = value;
+ OnReadOnlyChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public int RowCount {
+ get { return rows.Count; }
+ set {
+ if (value < 0) {
+ throw new ArgumentException("RowCount must be >= 0.");
+ }
+ if (value < 1 && allowUserToAddRows) {
+ throw new ArgumentException("RowCount must be >= 1 if AllowUserToAddRows is true.");
+ }
+ if (dataSource != null) {
+ throw new InvalidOperationException("Cant change row count if DataSource is set.");
+ }
+ if (value < rows.Count) {
+ for (int i = value; i < rows.Count; i++) {
+ rows.RemoveAt(i);
+ }
+ }
+ else if (value > rows.Count) {
+ for (int i = 0; i < value; i++) {
+ // DataGridViewRow row = new DataGridViewRow(); //(DataGridViewRow) rowTemplate.Clone();
+ DataGridViewRow row = (DataGridViewRow) rowTemplate.Clone();
+ rows.Add(row);
+ foreach (DataGridViewColumn col in columns) {
+ row.Cells.Add(col.CellTemplate.Clone() as DataGridViewCell);
+ }
+ }
+ }
+ if (ColumnCount == 0) {
+ ///////////////////////////////////////////////////////////////
+ //columns.Add(new DataGridViewTextBoxColumn());
+ throw new NotImplementedException();
+ }
+ }
+ }
+
+ public DataGridViewHeaderBorderStyle RowHeadersBorderStyle {
+ get { return rowHeadersBorderStyle; }
+ set {
+ if (rowHeadersBorderStyle != value) {
+ rowHeadersBorderStyle = value;
+ OnRowHeadersBorderStyleChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewCellStyle RowHeadersDefaultCellStyle {
+ get { return rowHeadersDefaultCellStyle; }
+ set {
+ if (rowHeadersDefaultCellStyle != value) {
+ rowHeadersDefaultCellStyle = value;
+ OnRowHeadersDefaultCellStyleChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public bool RowHeadersVisible {
+ get { return rowHeadersVisible; }
+ set { rowHeadersVisible = value; }
+ }
+
+ public int RowHeadersWidth {
+ get { return rowHeadersWidth; }
+ set {
+ if (rowHeadersWidth != value) {
+ if (value < 4) {
+ throw new ArgumentException("RowHeadersWidth cant be less than 4.");
+ }
+ rowHeadersWidth = value;
+ OnRowHeadersWidthChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewRowHeadersWidthSizeMode RowHeadersWidthSizeMode {
+ get { return rowHeadersWidthSizeMode; }
+ set {
+ if (rowHeadersWidthSizeMode != value) {
+ if (!Enum.IsDefined(typeof(DataGridViewRowHeadersWidthSizeMode), value)) {
+ throw new InvalidEnumArgumentException("Value is not valid DataGridViewRowHeadersWidthSizeMode.");
+ }
+ rowHeadersWidthSizeMode = value;
+ OnRowHeadersWidthSizeModeChanged(new DataGridViewAutoSizeModeEventArgs(false));
+ }
+ }
+ }
+
+ public DataGridViewRowCollection Rows {
+ get { return rows; }
+ }
+
+ public DataGridViewCellStyle RowsDefaultCellStyle {
+ get { return rowsDefaultCellStyle; }
+ set {
+ if (rowsDefaultCellStyle != value) {
+ rowsDefaultCellStyle = value;
+ OnRowsDefaultCellStyleChanged(EventArgs.Empty);
+ }
+ }
+ }
+
+ public DataGridViewRow RowTemplate {
+ get {
+ if (rowTemplate == null) {
+ return new DataGridViewRow();
+ }
+ return rowTemplate;
+ }
+ set {
+ rowTemplate = value;
+ rowTemplate.SetDataGridView(this);
+ }
+ }
+
+ public ScrollBars ScrollBars {
+ get { return scrollBars; }
+ set {
+ if (!Enum.IsDefined(typeof(ScrollBars), value)) {
+ throw new InvalidEnumArgumentException("Invalid ScrollBars value.");
+ }
+ ////////////////////////////////////////////////////////////
+ /// *** InvalidOperationException ***
+ /// The System.Windows.Forms.DataGridView is unable to
+ /// scroll due to a cell change that cannot be committed
+ /// or canceled.
+ ///////////////////////////////////////////////////////////
+ scrollBars = value;
+ }
+ }
+
+ public DataGridViewSelectedCellCollection SelectedCells {
+ get {
+ DataGridViewSelectedCellCollection selectedCells = new DataGridViewSelectedCellCollection();
+ foreach (DataGridViewRow row in rows) {
+ foreach (DataGridViewCell cell in row.Cells) {
+ if (cell.Selected) {
+ selectedCells.InternalAdd(cell);
+ }
+ }
+ }
+ return selectedCells;
+ }
+ }
+
+ public DataGridViewSelectedColumnCollection SelectedColumns {
+ get {
+ DataGridViewSelectedColumnCollection selectedColumns = new DataGridViewSelectedColumnCollection();
+ if (selectionMode == DataGridViewSelectionMode.FullColumnSelect || selectionMode == DataGridViewSelectionMode.ColumnHeaderSelect) {
+ foreach (DataGridViewColumn col in columns) {
+ if (col.Selected) {
+ selectedColumns.InternalAdd(col);
+ }
+ }
+ }
+ return selectedColumns;
+ }
+ }
+
+ public DataGridViewSelectedRowCollection SelectedRows {
+ get {
+ DataGridViewSelectedRowCollection selectedRows = new DataGridViewSelectedRowCollection();
+ if (selectionMode == DataGridViewSelectionMode.FullColumnSelect || selectionMode == DataGridViewSelectionMode.RowHeaderSelect) {
+ foreach (DataGridViewRow row in rows) {
+ if (row.Selected) {
+ selectedRows.InternalAdd(row);
+ }
+ }
+ }
+ return selectedRows;
+ }
+ }
+
+ public DataGridViewSelectionMode SelectionMode {
+ get { return selectionMode; }
+ set {
+ if (!Enum.IsDefined(typeof(DataGridViewSelectionMode), value)) {
+ throw new InvalidEnumArgumentException("Value is not valid DataGridViewSelectionMode.");
+ }
+ selectionMode = value;
+ }
+ }
+
+ public bool ShowCellErrors {
+ get { return showCellErrors; }
+ set { showCellErrors = value; }
+ }
+
+ public bool ShowCellToolTips {
+ get { return showCellToolTips; }
+ set { showCellToolTips = value; }
+ }
+
+ public bool ShowEditingIcon {
+ get { return showEditingIcon; }
+ set { showEditingIcon = value; }
+ }
+
+ public bool ShowRowErrors {
+ get { return showRowErrors; }
+ set { showRowErrors = value; }
+ }
+
+ public DataGridViewColumn SortedColumn {
+ get { return sortedColumn; }
+ }
+
+ public SortOrder SortOrder {
+ get { return sortOrder; }
+ }
+
+ public bool StandardTab {
+ get { return standardTab; }
+ set { standardTab = value; }
+ }
+
+ public override string Text {
+ get { return text; }
+ set { text = value; }
+ }
+
+ public DataGridViewHeaderCell TopLeftHeaderCell {
+ get { return topLeftHeaderCell; }
+ set { topLeftHeaderCell = value; }
+ }
+
+ public Cursor UserSetCursor {
+ get { return userSetCursor; }
+ }
+
+ public int VerticalScrollingOffset {
+ get { return verticalScrollingOffset; }
+ }
+
+ public bool VirtualMode {
+ get { return virtualMode; }
+ set { virtualMode = value; }
+ }
+
+ public event EventHandler AllowUserToAddRowsChanged;
+
+ public event EventHandler AllowUserToDeleteRowsChanged;
+
+ public event EventHandler AllowUserToOrderColumnsChanged;
+
+ public event EventHandler AllowUserToResizeColumnsChanged;
+
+ public event EventHandler AllowUserToResizeRowsChanged;
+
+ public event EventHandler AlternatingRowsDefaultCellStyleChanged;
+
+ public event EventHandler AutoGenerateColumnsChanged;
+
+ public new event EventHandler AutoSizeChanged;
+
+ public event DataGridViewAutoSizeColumnModeEventHandler AutoSizeColumnModeChanged;
+
+ public event DataGridViewAutoSizeColumnsModeEventHandler AutoSizeColumnsModeChanged;
+
+ public event DataGridViewAutoSizeModeEventHandler AutoSizeRowsModeChanged;
+
+ public new event EventHandler BackColorChanged;
+
+ public event EventHandler BackgroundColorChanged;
+
+ public new event EventHandler BackgroundImageChanged;
+
+ public new event EventHandler BackgroundImageLayoutChanged;
+
+ public event EventHandler BorderStyleChanged;
+
+ public event QuestionEventHandler CancelRowEdit;
+
+ public event DataGridViewCellCancelEventHandler CellBeginEdit;
+
+ public event EventHandler CellBorderStyleChanged;
+
+ public event DataGridViewCellEventHandler CellClick;
+
+ public event DataGridViewCellEventHandler CellContentClick;
+
+ public event DataGridViewCellEventHandler CellContentDoubleClick;
+
+ public event DataGridViewCellEventHandler CellContextMenuStripChanged;
+
+ public event DataGridViewCellContextMenuStripNeededEventHandler CellContextMenuStripNeeded;
+
+ public event DataGridViewCellEventHandler CellDoubleClick;
+
+ public event DataGridViewCellEventHandler CellEndEdit;
+
+ public event DataGridViewCellEventHandler CellEnter;
+
+ public event DataGridViewCellEventHandler CellErrorTextChanged;
+
+ public event DataGridViewCellErrorTextNeededEventHandler CellErrorTextNeeded;
+
+ public event DataGridViewCellFormattingEventHandler CellFormatting;
+
+ public event DataGridViewCellEventHandler CellLeave;
+
+ public event DataGridViewCellMouseEventHandler CellMouseClick;
+
+ public event DataGridViewCellMouseEventHandler CellMouseDoubleClick;
+
+ public event DataGridViewCellMouseEventHandler CellMouseDown;
+
+ public event DataGridViewCellEventHandler CellMouseEnter;
+
+ public event DataGridViewCellEventHandler CellMouseLeave;
+
+ public event DataGridViewCellMouseEventHandler CellMouseMove;
+
+ public event DataGridViewCellMouseEventHandler CellMouseUp;
+
+ public event DataGridViewCellPaintingEventHandler CellPainting;
+
+ public event DataGridViewCellParsingEventHandler CellParsing;
+
+ public event DataGridViewCellStateChangedEventHandler CellStateChanged;
+
+ public event DataGridViewCellEventHandler CellStyleChanged;
+
+ public event DataGridViewCellStyleContentChangedEventHandler CellStyleContentChanged;
+
+ public event DataGridViewCellEventHandler CellToolTipTextChanged;
+
+ public event DataGridViewCellToolTipTextNeededEventHandler CellToolTipTextNeeded;
+
+ public event DataGridViewCellEventHandler CellValidated;
+
+ public event DataGridViewCellValidatingEventHandler CellValidating;
+
+ public event DataGridViewCellEventHandler CellValueChanged;
+
+ public event DataGridViewCellValueEventHandler CellValueNeeded;
+
+ public event DataGridViewCellValueEventHandler CellValuePushed;
+
+ public event DataGridViewColumnEventHandler ColumnAdded;
+
+ public event DataGridViewColumnEventHandler ColumnContextMenuStripChanged;
+
+ public event DataGridViewColumnEventHandler ColumnDataPropertyNameChanged;
+
+ public event DataGridViewColumnEventHandler ColumnDefaultCellStyleChanged;
+
+ public event DataGridViewColumnEventHandler ColumnDisplayIndexChanged;
+
+ public event DataGridViewColumnDividerDoubleClickEventHandler ColumnDividerDoubleClick;
+
+ public event DataGridViewColumnEventHandler ColumnDividerWidthChanged;
+
+ public event DataGridViewColumnEventHandler ColumnHeaderCellChanged;
+
+ public event DataGridViewCellMouseEventHandler ColumnHeaderMouseClick;
+
+ public event DataGridViewCellMouseEventHandler ColumnHeaderMouseDoubleClick;
+
+ public event EventHandler ColumnHeadersBorderStyleChanged;
+
+ public event EventHandler ColumnHeadersDefaultCellStyleChanged;
+
+ public event EventHandler ColumnHeadersHeightChanged;
+
+ public event DataGridViewAutoSizeModeEventHandler ColumnHeadersHeightSizeModeChanged;
+
+ public event DataGridViewColumnEventHandler ColumnMinimumWidthChanged;
+
+ public event DataGridViewColumnEventHandler ColumnNameChanged;
+
+ public event DataGridViewColumnEventHandler ColumnRemoved;
+
+ public event DataGridViewColumnEventHandler ColumnSortModeChanged;
+
+ public event DataGridViewColumnStateChangedEventHandler ColumnStateChanged;
+
+ public event DataGridViewColumnEventHandler ColumnToolTipTextChanged;
+
+ public event DataGridViewColumnEventHandler ColumnWidthChanged;
+
+ public event EventHandler CurrentCellChanged;
+
+ public event EventHandler CurrentCellDirtyStateChanged;
+
+ public event DataGridViewBindingCompleteEventHandler DataBindingComplete;
+
+ public event DataGridViewDataErrorEventHandler DataError;
+
+ public event EventHandler DataMemberChanged;
+
+ public event EventHandler DataSourceChanged;
+
+ public event EventHandler DefaultCellStyleChanged;
+
+ public event DataGridViewRowEventHandler DefaultValuesNeeded;
+
+ public event DataGridViewEditingControlShowingEventHandler EditingControlShowing;
+
+ public event EventHandler EditModeChanged;
+
+ public new event EventHandler FontChanged;
+
+ public new event EventHandler ForeColorChanged;
+
+ public event EventHandler GridColorChanged;
+
+ public event EventHandler MultiSelectChanged;
+
+ public event DataGridViewRowEventHandler NewRowNeeded;
+
+ public event EventHandler ReadOnlyChanged;
+
+ public event DataGridViewRowEventHandler RowContextMenuStripChanged;
+
+ public event DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded;
+
+ public event DataGridViewRowEventHandler RowDefaultCellStyleChanged;
+
+ public event QuestionEventHandler RowDirtyStateNeeded;
+
+ public event DataGridViewRowDividerDoubleClickEventHandler RowDividerDoubleClick;
+
+ public event DataGridViewRowEventHandler RowDividerHeightChanged;
+
+ public event DataGridViewCellEventHandler RowEnter;
+
+ public event DataGridViewRowEventHandler RowErrorTextChanged;
+
+ public event DataGridViewRowErrorTextNeededEventHandler RowErrorTextNeeded;
+
+ public event DataGridViewRowEventHandler RowHeaderCellChanged;
+
+ public event DataGridViewCellMouseEventHandler RowHeaderMouseClick;
+
+ public event DataGridViewCellMouseEventHandler RowHeaderMouseDoubleClick;
+
+ public event EventHandler RowHeadersBorderStyleChanged;
+
+ public event EventHandler RowHeadersDefaultCellStyleChanged;
+
+ public event EventHandler RowHeadersWidthChanged;
+
+ public event DataGridViewAutoSizeModeEventHandler RowHeadersWidthSizeModeChanged;
+
+ public event DataGridViewRowEventHandler RowHeightChanged;
+
+ public event DataGridViewRowHeightInfoNeededEventHandler RowHeightInfoNeeded;
+
+ public event DataGridViewRowHeightInfoPushedEventHandler RowHeightInfoPushed;
+
+ public event DataGridViewCellEventHandler RowLeave;
+
+ public event DataGridViewRowEventHandler RowMinimumHeightChanged;
+
+ public event DataGridViewRowPostPaintEventHandler RowPostPaint;
+
+ public event DataGridViewRowPrePaintEventHandler RowPrePaint;
+
+ public event DataGridViewRowsAddedEventHandler RowsAdded;
+
+ public event EventHandler RowsDefaultCellStyleChanged;
+
+ public event DataGridViewRowsRemovedEventHandler RowsRemoved;
+
+ public event DataGridViewRowStateChangedEventHandler RowStateChanged;
+
+ public event DataGridViewRowEventHandler RowUnshared;
+
+ public event DataGridViewCellEventHandler RowValidated;
+
+ public event DataGridViewCellCancelEventHandler RowValidating;
+
+ public event ScrollEventHandler Scroll;
+
+ public event EventHandler SelectionChanged;
+
+ public event DataGridViewSortCompareEventHandler SortCompare;
+
+ public event EventHandler Sorted;
+
+ public event DataGridViewRowEventHandler UserAddedRow;
+
+ public event DataGridViewRowEventHandler UserDeletedRow;
+
+ public event DataGridViewRowCancelEventHandler UserDeletingRow;
+
+ public new event EventHandler StyleChanged;
+
+ public new event EventHandler TextChanged;
+
+ public virtual DataGridViewAdvancedBorderStyle AdjustColumnHeaderBorderStyle (DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStyleInput, DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStylePlaceholder, bool isFirstDisplayedColumn, bool isLastVisibleColumn) {
+ return (DataGridViewAdvancedBorderStyle) dataGridViewAdvancedBorderStyleInput.Clone();
+ }
+
+ public bool AreAllCellsSelected (bool includeInvisibleCells) {
+ foreach (DataGridViewRow row in rows) {
+ foreach (DataGridViewCell cell in row.Cells) {
+ if (includeInvisibleCells == false && cell.Visible == false) {
+ continue;
+ }
+ if (!cell.Selected) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ public void AutoResizeColumn (int columnIndex) {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeColumn (int columnIndex, DataGridViewAutoSizeColumnMode autoSizeColumnMode) {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeColumnHeadersHeight () {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeColumnHeadersHeight (int columnIndex) {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeColumns () {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeColumns (DataGridViewAutoSizeColumnsMode autoSizeColumnsMode) {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeRow (int rowIndex) {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeRow (int rowIndex, DataGridViewAutoSizeRowMode autoSizeRowMode) {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeRowHeadersWidth (DataGridViewRowHeadersWidthSizeMode rowHeadersWidthSizeMode) {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeRowHeadersWidth (int rowIndex, DataGridViewRowHeadersWidthSizeMode rowHeadersWidthSizeMode) {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeRows () {
+ throw new NotImplementedException();
+ }
+
+ public void AutoResizeRows (DataGridViewAutoSizeRowsMode autoSizeRowsMode) {
+ if (!Enum.IsDefined(typeof(DataGridViewAutoSizeRowsMode), autoSizeRowsMode)) {
+ throw new InvalidEnumArgumentException("Parameter AutoSizeRowsMode is not valid DataGridViewRowsMode.");
+ }
+ if ((autoSizeRowsMode == DataGridViewAutoSizeRowsMode.AllHeaders || autoSizeRowsMode == DataGridViewAutoSizeRowsMode.DisplayedHeaders) && rowHeadersVisible == false) {
+ throw new InvalidOperationException("Parameter AutoSizeRowsMode cant be AllHeaders or DisplayedHeaders in this DataGridView.");
+ }
+ if (autoSizeRowsMode == DataGridViewAutoSizeRowsMode.None) {
+ throw new ArgumentException("Parameter AutoSieRowsMode cant be None.");
+ }
+ }
+
+ public virtual bool BeginEdit (bool selectAll) {
+ throw new NotImplementedException();
+ }
+
+ public bool CancelEdit () {
+ throw new NotImplementedException();
+ }
+
+ public void ClearSelection () {
+ foreach (DataGridViewCell cell in SelectedCells) {
+ cell.Selected = false;
+ }
+ }
+
+ public bool CommitEdit (DataGridViewDataErrorContexts context) {
+ throw new NotImplementedException();
+ }
+
+ public int DisplayedColumnCount (bool includePartialColumns) {
+ /////////////////////// PartialColumns?
+ int result = 0;
+ foreach (DataGridViewColumn col in columns) {
+ if (col.Visible) {
+ result++;
+ }
+ }
+ return result;
+ }
+
+ public int DisplayedRowCount (bool includePartialRow) {
+ /////////////////////// PartialRows?
+ int result = 0;
+ foreach (DataGridViewRow row in rows) {
+ if (row.Visible) {
+ result++;
+ }
+ }
+ return result;
+ }
+
+ public bool EndEdit () {
+ throw new NotImplementedException();
+ }
+
+ public bool EndEdit (DataGridViewDataErrorContexts context) {
+ throw new NotImplementedException();
+ }
+
+ public int GetCellCount (DataGridViewElementStates includeFilter) {
+ int result = 0;
+ foreach (DataGridViewRow row in rows) {
+ foreach (DataGridViewCell cell in row.Cells) {
+ if ((cell.State & includeFilter) != 0) {
+ result++;
+ }
+ }
+ }
+ return result;
+ }
+
+ public Rectangle GetCellDisplayRectangle (int columnIndex, int rowIndex, bool cutOverflow) {
+ if (columnIndex < 0 || columnIndex >= columns.Count) {
+ throw new ArgumentOutOfRangeException("Column index is out of range.");
+ }
+ throw new NotImplementedException();
+ }
+
+ public virtual DataObject GetClipboardContent () {
+ throw new NotImplementedException();
+ }
+
+ public Rectangle GetColumnDisplayRectangle (int columnIndex, bool cutOverflow) {
+ throw new NotImplementedException();
+ }
+
+ public Rectangle GetRowDisplayRectangle (int rowIndex, bool cutOverflow) {
+ throw new NotImplementedException();
+ }
+
+ public HitTestInfo HitTest (int x, int y) {
+ ///////////////////////////////////////////////////////
+ x += horizontalScrollingOffset;
+ y += verticalScrollingOffset;
+ int rowIndex = -1;
+ int totalHeight = (columnHeadersVisible)? 1 + columnHeadersHeight : 1;
+ if (columnHeadersVisible && y <= totalHeight) {
+ rowIndex = -1;
+ }
+ else {
+ foreach (DataGridViewRow row in rows.RowIndexSortedArrayList) {
+ totalHeight += row.Height;
+ if (y <= totalHeight) {
+ rowIndex = row.Index;
+ break;
+ }
+ totalHeight++; // sumar el ancho de las lineas...
+ }
+ }
+ int colIndex = -1;
+ int totalWidth = (rowHeadersVisible)? 1 + rowHeadersWidth : 1;
+ if (rowHeadersVisible && x <= totalWidth) {
+ colIndex = -1;
+ }
+ else {
+ foreach (DataGridViewColumn col in columns.ColumnDisplayIndexSortedArrayList) {
+ totalWidth += col.Width;
+ if (x <= totalWidth) {
+ colIndex = col.Index;
+ break;
+ }
+ totalWidth++;
+ }
+ }
+ HitTestInfo result = new HitTestInfo(colIndex, x, rowIndex, y, (colIndex >= 0 && rowIndex >= 0)? DataGridViewHitTestType.Cell : DataGridViewHitTestType.None);
+ return result;
+ }
+
+ public void InvalidateCell (DataGridViewCell dataGridViewCell) {
+ if (dataGridViewCell == null) {
+ throw new ArgumentNullException("Cell is null");
+ }
+ if (dataGridViewCell.DataGridView != this) {
+ throw new ArgumentException("The specified cell does not belong to this DataGridView.");
+ }
+ throw new NotImplementedException();
+ }
+
+ public void InvalidateCell (int columnIndex, int rowIndex) {
+ if (columnIndex < 0 || columnIndex >= columns.Count) {
+ throw new ArgumentOutOfRangeException("Column index is out of range.");
+ }
+ if (rowIndex < 0 || rowIndex >= rows.Count) {
+ throw new ArgumentOutOfRangeException("Row index is out of range.");
+ }
+ foreach (DataGridViewRow row in rows) {
+ foreach (DataGridViewCell cell in row.Cells) {
+ if (cell.RowIndex == rowIndex && cell.ColumnIndex == columnIndex) {
+ InvalidateCell(cell); //// O al revés, que el otro llame a este !!!
+ return;
+ }
+ }
+ }
+ }
+
+ public void InvalidateColumn (int columnIndex) {
+ if (columnIndex < 0 || columnIndex >= columns.Count) {
+ throw new ArgumentOutOfRangeException("Column index is out of range.");
+ }
+ throw new NotImplementedException();
+ }
+
+ public void InvalidateRow (int rowIndex) {
+ if (rowIndex < 0 || rowIndex >= rows.Count) {
+ throw new ArgumentOutOfRangeException("Row index is out of range.");
+ }
+ throw new NotImplementedException();
+ }
+
+ public virtual void NotifyCurrentCellDirty (bool dirty) {
+ throw new NotImplementedException();
+ }
+
+ public bool RefreshEdit () {
+ throw new NotImplementedException();
+ }
+
+ public override void ResetText () {
+ throw new NotImplementedException();
+ }
+
+ public void SelectAll () {
+ switch (selectionMode) {
+ case DataGridViewSelectionMode.FullRowSelect:
+ foreach (DataGridViewRow row in rows) {
+ (row as DataGridViewBand).Selected = true;
+ }
+ break;
+ case DataGridViewSelectionMode.FullColumnSelect:
+ foreach (DataGridViewColumn col in columns) {
+ (col as DataGridViewBand).Selected = true;
+ }
+ break;
+ default:
+ foreach (DataGridViewRow row in rows) {
+ foreach (DataGridViewCell cell in row.Cells) {
+ cell.Selected = true;
+ }
+ }
+ break;
+ }
+ }
+
+ public virtual void Sort (IComparer comparer) {
+ throw new NotImplementedException();
+ }
+
+ public virtual void Sort (DataGridViewColumn dataGridViewColumn, ListSortDirection direction) {
+ throw new NotImplementedException();
+ }
+
+ public void UpdateCellErrorText (int columnIndex, int rowIndex) {
+ throw new NotImplementedException();
+ }
+
+ public void UpdateRowErrorText (int rowIndex) {
+ throw new NotImplementedException();
+ }
+
+ public void UpdateRowErrorText (int rowIndexStart, int rowIndexEnd) {
+ throw new NotImplementedException();
+ }
+
+ public void UpdateRowHeightInfo (int rowIndex, bool updateToEnd) {
+ throw new NotImplementedException();
+ }
+
+ protected override Size DefaultSize {
+ get { return defaultSize; }
+ }
+
+ protected ScrollBar HorizontalScrollBar {
+ get { return horizontalScrollBar; }
+ }
+
+ protected ScrollBar VerticalScrollBar {
+ get { return verticalScrollBar; }
+ }
+
+ protected void AutoResizeColumn (int columnIndex, DataGridViewAutoSizeColumnMode autoSizeColumnMode, bool fixedHeight) {
+ throw new NotImplementedException();
+ }
+
+ protected void AutoResizeColumnHeadersHeight (bool fixedRowHeadersWidth, bool fixedColumnsWidth) {
+ throw new NotImplementedException();
+ }
+
+ protected void AutoResizeColumnHeadersHeight (int columnIndex, bool fixedRowHeadersWidth, bool fixedColumnWidth) {
+ throw new NotImplementedException();
+ }
+
+ protected void AutoResizeColumns (DataGridViewAutoSizeColumnsMode autoSizeColumnsMode, bool fixedHeight) {
+ throw new NotImplementedException();
+ }
+
+ protected void AutoResizeRow (int rowIndex, DataGridViewAutoSizeRowMode autoSizeRowMode, bool fixedWidth) {
+ throw new NotImplementedException();
+ }
+
+ protected void AutoResizeRowHeadersWidth (DataGridViewRowHeadersWidthSizeMode rowHeadersWidthSizeMode, bool fixedColumnHeadersHeight, bool fixedRowsHeight) {
+ throw new NotImplementedException();
+ }
+
+ protected void AutoResizeRowHeadersWidth (int rowIndex, DataGridViewRowHeadersWidthSizeMode rowHeadersWidthSizeMode, bool fixedColumnHeadersHeight, bool fixedRowHeight) {
+ throw new NotImplementedException();
+ }
+
+ protected void AutoResizeRows (DataGridViewAutoSizeRowsMode autoSizeRowsMode, bool fixedWidth) {
+ throw new NotImplementedException();
+ }
+
+ protected void AutoResizeRows (int rowIndexStart, int rowsCount, DataGridViewAutoSizeRowMode autoSizeRowMode, bool fixedWidth) {
+ throw new NotImplementedException();
+ }
+
+ protected void ClearSelection (int columnIndexException, int rowIndexException, bool selectExceptionElement) {
+ if (columnIndexException >= columns.Count) {
+ throw new ArgumentOutOfRangeException("ColumnIndexException is greater than the highest column index.");
+ }
+ if (selectionMode == DataGridViewSelectionMode.FullRowSelect) {
+ if (columnIndexException < -1) {
+ throw new ArgumentOutOfRangeException("ColumnIndexException is less than -1.");
+ }
+ }
+ else {
+ if (columnIndexException < 0) {
+ throw new ArgumentOutOfRangeException("ColumnIndexException is less than 0.");
+ }
+ }
+ if (rowIndexException >= rows.Count) {
+ throw new ArgumentOutOfRangeException("RowIndexException is greater than the highest row index.");
+ }
+ if (selectionMode == DataGridViewSelectionMode.FullColumnSelect) {
+ if (rowIndexException < -1) {
+ throw new ArgumentOutOfRangeException("RowIndexException is less than -1.");
+ }
+ }
+ else {
+ if (rowIndexException < 0) {
+ throw new ArgumentOutOfRangeException("RowIndexException is less than 0.");
+ }
+ }
+ switch (selectionMode) {
+ case DataGridViewSelectionMode.FullRowSelect:
+ foreach (DataGridViewRow row in rows) {
+ if (selectExceptionElement && row.Index == rowIndexException) {
+ continue;
+ }
+ row.Selected = false;
+ }
+ break;
+ case DataGridViewSelectionMode.FullColumnSelect:
+ foreach (DataGridViewColumn col in columns) {
+ if (selectExceptionElement && col.Index == columnIndexException) {
+ continue;
+ }
+ col.Selected = false;
+ }
+ break;
+ default:
+ foreach (DataGridViewCell cell in SelectedCells) {
+ if (selectExceptionElement && cell.RowIndex == rowIndexException && cell.ColumnIndex == columnIndexException) {
+ continue;
+ }
+ cell.Selected = false;
+ }
+ break;
+ }
+ }
+
+ protected override AccessibleObject CreateAccessibilityInstance () {
+ return new DataGridViewAccessibleObject(this);
+ }
+
+ protected virtual DataGridViewColumnCollection CreateColumnsInstance () {
+ return new DataGridViewColumnCollection(this);
+ }
+
+ protected override Control.ControlCollection CreateControlsInstance () {
+ return base.CreateControlsInstance(); //new Control.ControlCollection(this);
+ }
+
+ protected virtual DataGridViewRowCollection CreateRowsInstance () {
+ return new DataGridViewRowCollection(this);
+ }
+
+ protected override void Dispose (bool disposing) {
+ }
+
+ //protected override AccessibleObject GetAccessibilityObjectById (int objectId) {
+ protected AccessibleObject GetAccessibilityObjectById (int objectId) {
+ throw new NotImplementedException();
+ }
+
+ protected override bool IsInputChar (char charCode) {
+ return base.IsInputChar(charCode);
+ //throw new NotImplementedException();
+ }
+
+ protected override bool IsInputKey (Keys keyData) {
+ return base.IsInputKey(keyData);
+ //throw new NotImplementedException();
+ }
+
+ protected virtual void OnAllowUserToAddRowsChanged (EventArgs e) {
+ if (AllowUserToAddRowsChanged != null) {
+ AllowUserToAddRowsChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAllowUserToDeleteRowsChanged (EventArgs e) {
+ if (AllowUserToDeleteRowsChanged != null) {
+ AllowUserToDeleteRowsChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAllowUserToOrderColumnsChanged (EventArgs e) {
+ if (AllowUserToOrderColumnsChanged != null) {
+ AllowUserToOrderColumnsChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAllowUserToResizeColumnsChanged (EventArgs e) {
+ if (AllowUserToResizeColumnsChanged != null) {
+ AllowUserToResizeColumnsChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAllowUserToResizeRowsChanged (EventArgs e) {
+ if (AllowUserToResizeRowsChanged != null) {
+ AllowUserToResizeRowsChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAlternatingRowsDefaultCellStyleChanged (EventArgs e) {
+ if (AlternatingRowsDefaultCellStyleChanged != null) {
+ AlternatingRowsDefaultCellStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAutoGenerateColumnsChanged (EventArgs e) {
+ if (AutoGenerateColumnsChanged != null) {
+ AutoGenerateColumnsChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAutoSizeColumnModeChanged (DataGridViewAutoSizeColumnModeEventArgs e) {
+ if (AutoSizeColumnModeChanged != null) {
+ AutoSizeColumnModeChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAutoSizeColumnsModeChanged (DataGridViewAutoSizeColumnsModeEventArgs e) {
+ if (AutoSizeColumnsModeChanged != null) {
+ AutoSizeColumnsModeChanged(this, e);
+ }
+ }
+
+ protected virtual void OnAutoSizeRowsModeChanged (DataGridViewAutoSizeModeEventArgs e) {
+ if (AutoSizeRowsModeChanged != null) {
+ AutoSizeRowsModeChanged(this, e);
+ }
+ }
+
+ protected virtual void OnBackgroundColorChanged (EventArgs e) {
+ if (BackgroundColorChanged != null) {
+ BackgroundColorChanged(this, e);
+ }
+ }
+
+ protected override void OnBindingContextChanged (EventArgs e) {
+ base.OnBindingContextChanged(e);
+ }
+
+ protected virtual void OnBorderStyleChanged (EventArgs e) {
+ if (BorderStyleChanged != null) {
+ BorderStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCancelRowEdit (QuestionEventArgs e) {
+ if (CancelRowEdit != null) {
+ CancelRowEdit(this, e);
+ }
+ }
+
+ protected virtual void OnCellBeginEdit (DataGridViewCellCancelEventArgs e) {
+ if (CellBeginEdit != null) {
+ CellBeginEdit(this, e);
+ }
+ }
+
+ protected virtual void OnCellBorderStyleChanged (EventArgs e) {
+ if (CellBorderStyleChanged != null) {
+ CellBorderStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCellClick (DataGridViewCellEventArgs e) {
+ if (CellClick != null) {
+ CellClick(this, e);
+ }
+ }
+
+ protected virtual void OnCellContentClick (DataGridViewCellEventArgs e) {
+ if (CellContentClick != null) {
+ CellContentClick(this, e);
+ }
+ }
+
+ protected virtual void OnCellContentDoubleClick (DataGridViewCellEventArgs e) {
+ if (CellContentDoubleClick != null) {
+ CellContentDoubleClick(this, e);
+ }
+ }
+
+ protected virtual void OnCellContextMenuStripChanged (DataGridViewCellEventArgs e) {
+ if (CellContextMenuStripChanged != null) {
+ CellContextMenuStripChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCellContextMenuStripNeeded (DataGridViewCellContextMenuStripNeededEventArgs e) {
+ if (CellContextMenuStripNeeded != null) {
+ CellContextMenuStripNeeded(this, e);
+ }
+ }
+
+ protected virtual void OnCellDoubleClick (DataGridViewCellEventArgs e) {
+ if (CellDoubleClick != null) {
+ CellDoubleClick(this, e);
+ }
+ }
+
+ protected virtual void OnCellEndEdit (DataGridViewCellEventArgs e) {
+ if (CellEndEdit != null) {
+ CellEndEdit(this, e);
+ }
+ }
+
+ protected virtual void OnCellEnter (DataGridViewCellEventArgs e) {
+ if (CellEnter != null) {
+ CellEnter(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnCellErrorTextChanged (DataGridViewCellEventArgs e) {
+ if (CellErrorTextChanged != null) {
+ CellErrorTextChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCellErrorTextNeeded (DataGridViewCellErrorTextNeededEventArgs e) {
+ if (CellErrorTextNeeded != null) {
+ CellErrorTextNeeded(this, e);
+ }
+ }
+
+ protected virtual void OnCellFormatting (DataGridViewCellFormattingEventArgs e) {
+ if (CellFormatting != null) {
+ CellFormatting(this, e);
+ }
+ }
+
+ protected virtual void OnCellLeave (DataGridViewCellEventArgs e) {
+ if (CellLeave != null) {
+ CellLeave(this, e);
+ }
+ }
+
+ protected virtual void OnCellMouseClick (DataGridViewCellMouseEventArgs e) {
+ if (CellMouseClick != null) {
+ CellMouseClick(this, e);
+ }
+ }
+
+ protected virtual void OnCellMouseDoubleClick (DataGridViewCellMouseEventArgs e) {
+ if (CellMouseDoubleClick != null) {
+ CellMouseDoubleClick(this, e);
+ }
+ }
+
+ protected virtual void OnCellMouseDown (DataGridViewCellMouseEventArgs e) {
+ if (CellMouseDown != null) {
+ CellMouseDown(this, e);
+ }
+ }
+
+ protected virtual void OnCellMouseEnter (DataGridViewCellEventArgs e) {
+ if (CellMouseEnter != null) {
+ CellMouseEnter(this, e);
+ }
+ }
+
+ protected virtual void OnCellMouseLeave (DataGridViewCellEventArgs e) {
+ if (CellMouseLeave != null) {
+ CellMouseLeave(this, e);
+ }
+ }
+
+ protected virtual void OnCellMouseMove (DataGridViewCellMouseEventArgs e) {
+ if (CellMouseMove != null) {
+ CellMouseMove(this, e);
+ }
+ }
+
+ protected virtual void OnCellMouseUp (DataGridViewCellMouseEventArgs e) {
+ if (CellMouseUp != null) {
+ CellMouseUp(this, e);
+ }
+ }
+
+ protected virtual void OnCellPainting (DataGridViewCellPaintingEventArgs e) {
+ if (CellPainting != null) {
+ CellPainting(this, e);
+ }
+ }
+
+ protected internal virtual void OnCellParsing (DataGridViewCellParsingEventArgs e) {
+ if (CellParsing != null) {
+ CellParsing(this, e);
+ }
+ }
+
+ protected virtual void OnCellStateChanged (DataGridViewCellStateChangedEventArgs e) {
+ if (CellStateChanged != null) {
+ CellStateChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCellStyleChanged (DataGridViewCellEventArgs e) {
+ if (CellStyleChanged != null) {
+ CellStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCellStyleContentChanged (DataGridViewCellStyleContentChangedEventArgs e) {
+ if (CellStyleContentChanged != null) {
+ CellStyleContentChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCellToolTipTextChanged (DataGridViewCellEventArgs e) {
+ if (CellToolTipTextChanged != null) {
+ CellToolTipTextChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCellToolTipTextNeeded (DataGridViewCellToolTipTextNeededEventArgs e) {
+ if (CellToolTipTextNeeded != null) {
+ CellToolTipTextNeeded(this, e);
+ }
+ }
+
+ protected virtual void OnCellValidated (DataGridViewCellEventArgs e) {
+ if (CellValidated != null) {
+ CellValidated(this, e);
+ }
+ }
+
+ protected virtual void OnCellValidating (DataGridViewCellValidatingEventArgs e) {
+ if (CellValidating != null) {
+ CellValidating(this, e);
+ }
+ }
+
+ protected virtual void OnCellValueChanged (DataGridViewCellEventArgs e) {
+ if (CellValueChanged != null) {
+ CellValueChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCellValueNeeded (DataGridViewCellValueEventArgs e) {
+ if (CellValueNeeded != null) {
+ CellValueNeeded(this, e);
+ }
+ }
+
+ protected virtual void OnCellValuePushed (DataGridViewCellValueEventArgs e) {
+ if (CellValuePushed != null) {
+ CellValuePushed(this, e);
+ }
+ }
+
+ protected virtual void OnColumnAdded (DataGridViewColumnEventArgs e) {
+ if (ColumnAdded != null) {
+ ColumnAdded(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnContextMenuStripChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnContextMenuStripChanged != null) {
+ ColumnContextMenuStripChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnDataPropertyNameChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnDataPropertyNameChanged != null) {
+ ColumnDataPropertyNameChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnDefaultCellStyleChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnDefaultCellStyleChanged != null) {
+ ColumnDefaultCellStyleChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnDisplayIndexChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnDisplayIndexChanged != null) {
+ ColumnDisplayIndexChanged(this, e);
+ }
+ }
+
+ protected virtual void OnColumnDividerDoubleClick (DataGridViewColumnDividerDoubleClickEventArgs e) {
+ if (ColumnDividerDoubleClick != null) {
+ ColumnDividerDoubleClick(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnDividerWidthChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnDividerWidthChanged != null) {
+ ColumnDividerWidthChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnHeaderCellChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnHeaderCellChanged != null) {
+ ColumnHeaderCellChanged(this, e);
+ }
+ }
+
+ protected virtual void OnColumnHeaderMouseClick (DataGridViewCellMouseEventArgs e) {
+ if (ColumnHeaderMouseClick != null) {
+ ColumnHeaderMouseClick(this, e);
+ }
+ }
+
+ protected virtual void OnColumnHeaderMouseDoubleClick (DataGridViewCellMouseEventArgs e) {
+ if (ColumnHeaderMouseDoubleClick != null) {
+ ColumnHeaderMouseDoubleClick(this, e);
+ }
+ }
+
+ protected virtual void OnColumnHeadersBorderStyleChanged (EventArgs e) {
+ if (ColumnHeadersBorderStyleChanged != null) {
+ ColumnHeadersBorderStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnColumnHeadersDefaultCellStyleChanged (EventArgs e) {
+ if (ColumnHeadersDefaultCellStyleChanged != null) {
+ ColumnHeadersDefaultCellStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnColumnHeadersHeightChanged (EventArgs e) {
+ if (ColumnHeadersHeightChanged != null) {
+ ColumnHeadersHeightChanged(this, e);
+ }
+ }
+
+ protected virtual void OnColumnHeadersHeightSizeModeChanged (DataGridViewAutoSizeModeEventArgs e) {
+ if (ColumnHeadersHeightSizeModeChanged != null) {
+ ColumnHeadersHeightSizeModeChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnMinimumWidthChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnMinimumWidthChanged != null) {
+ ColumnMinimumWidthChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnNameChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnNameChanged != null) {
+ ColumnNameChanged(this, e);
+ }
+ }
+
+ protected virtual void OnColumnRemoved (DataGridViewColumnEventArgs e) {
+ if (ColumnRemoved != null) {
+ ColumnRemoved(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnSortModeChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnSortModeChanged != null) {
+ ColumnSortModeChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnStateChanged (DataGridViewColumnStateChangedEventArgs e) {
+ if (ColumnStateChanged != null) {
+ ColumnStateChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnToolTipTextChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnToolTipTextChanged != null) {
+ ColumnToolTipTextChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnColumnWidthChanged (DataGridViewColumnEventArgs e) {
+ if (ColumnWidthChanged != null) {
+ ColumnWidthChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCurrentCellChanged (EventArgs e) {
+ if (CurrentCellChanged != null) {
+ CurrentCellChanged(this, e);
+ }
+ }
+
+ protected virtual void OnCurrentCellDirtyStateChanged (EventArgs e) {
+ if (CurrentCellDirtyStateChanged != null) {
+ CurrentCellDirtyStateChanged(this, e);
+ }
+ }
+
+ protected virtual void OnDataBindingComplete (DataGridViewBindingCompleteEventArgs e) {
+ if (DataBindingComplete != null) {
+ DataBindingComplete(this, e);
+ }
+ }
+
+ protected virtual void OnDataError (bool displayErrorDialogIfNoHandler, DataGridViewDataErrorEventArgs e) {
+ if (DataError != null) {
+ DataError(this, e);
+ }
+ else {
+ if (displayErrorDialogIfNoHandler) {
+ /////////////////////////////////// ERROR DIALOG //////////////////////////////////7
+ }
+ }
+ }
+ protected virtual void OnDataMemberChanged (EventArgs e) {
+ if (DataMemberChanged != null) {
+ DataMemberChanged(this, e);
+ }
+ }
+
+ protected virtual void OnDataSourceChanged (EventArgs e) {
+ if (DataSourceChanged != null) {
+ DataSourceChanged(this, e);
+ }
+ }
+
+ protected virtual void OnDefaultCellStyleChanged (EventArgs e) {
+ if (DefaultCellStyleChanged != null) {
+ DefaultCellStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnDefaultValuesNeeded (DataGridViewRowEventArgs e) {
+ if (DefaultValuesNeeded != null) {
+ DefaultValuesNeeded(this, e);
+ }
+ }
+
+ protected override void OnDoubleClick (EventArgs e) {
+ base.OnDoubleClick(e);
+ }
+
+ protected virtual void OnEditingControlShowing (DataGridViewEditingControlShowingEventArgs e) {
+ if (EditingControlShowing != null) {
+ EditingControlShowing(this, e);
+ }
+ }
+
+ protected virtual void OnEditModeChanged (EventArgs e) {
+ if (EditModeChanged != null) {
+ EditModeChanged(this, e);
+ }
+ }
+
+ protected override void OnEnabledChanged (EventArgs e) {
+ base.OnEnabledChanged(e);
+ }
+
+ protected override void OnEnter (EventArgs e ) {
+ base.OnEnter(e);
+ }
+
+ protected override void OnFontChanged (EventArgs e) {
+ base.OnFontChanged(e);
+ if (FontChanged != null) {
+ FontChanged(this, e);
+ }
+ }
+
+ protected override void OnForeColorChanged (EventArgs e) {
+ base.OnForeColorChanged(e);
+ if (ForeColorChanged != null) {
+ ForeColorChanged(this, e);
+ }
+ }
+
+ protected virtual void OnGridColorChanged (EventArgs e) {
+ if (GridColorChanged != null) {
+ GridColorChanged(this, e);
+ }
+ }
+
+ protected override void OnHandleCreated (EventArgs e) {
+ base.OnHandleCreated(e);
+ }
+
+ protected override void OnKeyDown (KeyEventArgs e) {
+ base.OnKeyDown(e);
+ }
+
+ protected override void OnKeyPress (KeyPressEventArgs e) {
+ base.OnKeyPress(e);
+ }
+
+ protected override void OnKeyUp (KeyEventArgs e) {
+ base.OnKeyUp(e);
+ }
+
+ protected override void OnLayout (LayoutEventArgs e) {
+ base.OnLayout(e);
+ }
+
+ protected override void OnLeave (EventArgs e) {
+ base.OnLeave(e);
+ }
+
+ //protected override void OnMouseClick (MouseEventArgs e) {
+ protected void OnMouseClick (MouseEventArgs e) {
+ //base.OnMouseClick(e);
+ //Console.WriteLine("Mouse: Clicks: {0}; Delta: {1}; X: {2}; Y: {3};", e.Clicks, e.Delta, e.X, e.Y);
+ }
+
+ //protected override void OnMouseDoubleClick (MouseEventArgs e) {
+ protected void OnMouseDoubleClick (MouseEventArgs e) {
+ //base.OnMouseDoubleClick(e);
+ }
+
+ protected override void OnMouseDown (MouseEventArgs e) {
+ base.OnMouseDown(e);
+ //Console.WriteLine("Mouse: Clicks: {0}; Delta: {1}; X: {2}; Y: {3};", e.Clicks, e.Delta, e.X, e.Y);
+ HitTestInfo hitTest = HitTest(e.X, e.Y);
+ //Console.WriteLine("HitTest: Column: {0}; Row: {1};", hitTest.ColumnIndex, hitTest.RowIndex);
+ if (hitTest.RowIndex < 0 || hitTest.ColumnIndex < 0) {
+ return;
+ }
+ OnCellClick(new DataGridViewCellEventArgs(hitTest.ColumnIndex, hitTest.RowIndex));
+ DataGridViewRow row = rows[hitTest.RowIndex];
+ DataGridViewCell cell = row.Cells[hitTest.ColumnIndex];
+ ClearSelection(0, 0, false);
+ switch (selectionMode) {
+ case DataGridViewSelectionMode.FullRowSelect:
+ row.Selected = true;
+ break;
+ case DataGridViewSelectionMode.FullColumnSelect:
+ //////////////////
+ break;
+ default:
+ cell.Selected = true;
+ break;
+ }
+ if (cell == currentCell) {
+ currentCell.SetIsInEditMode(true);
+ OnCellBeginEdit(new DataGridViewCellCancelEventArgs(currentCell.ColumnIndex, currentCell.RowIndex));
+ Invalidate();
+ return;
+ }
+ if (currentCell != null) {
+ if (currentCell.IsInEditMode) {
+ currentCell.SetIsInEditMode(false);
+ currentCell.DetachEditingControl();
+ OnCellEndEdit(new DataGridViewCellEventArgs(currentCell.ColumnIndex, currentCell.RowIndex));
+ }
+ OnCellLeave(new DataGridViewCellEventArgs(currentCell.ColumnIndex, currentCell.RowIndex));
+ }
+ currentCell = cell;
+ OnCurrentCellChanged(EventArgs.Empty);
+ OnCellEnter(new DataGridViewCellEventArgs(cell.ColumnIndex, cell.RowIndex));
+ if (editMode == DataGridViewEditMode.EditOnEnter) {
+ currentCell.SetIsInEditMode(true);
+ OnCellBeginEdit(new DataGridViewCellCancelEventArgs(currentCell.ColumnIndex, currentCell.RowIndex));
+ }
+ Invalidate();
+ return;
+ }
+
+ protected override void OnMouseEnter (EventArgs e) {
+ base.OnMouseEnter(e);
+ }
+
+ protected override void OnMouseLeave (EventArgs e) {
+ base.OnMouseLeave(e);
+ }
+
+ protected override void OnMouseMove (MouseEventArgs e) {
+ base.OnMouseMove(e);
+ }
+
+ protected override void OnMouseUp (MouseEventArgs e) {
+ base.OnMouseUp(e);
+ }
+
+ protected override void OnMouseWheel (MouseEventArgs e) {
+ base.OnMouseWheel(e);
+ }
+
+ protected virtual void OnMultiSelectChanged (EventArgs e) {
+ if (MultiSelectChanged != null) {
+ MultiSelectChanged(this, e);
+ }
+ }
+
+ protected virtual void OnNewRowNeeded (DataGridViewRowEventArgs e) {
+ if (NewRowNeeded != null) {
+ NewRowNeeded(this, e);
+ }
+ }
+
+ protected override void OnPaint (PaintEventArgs e) {
+ base.OnPaint(e);
+ Console.WriteLine(e.ClipRectangle);
+ Rectangle bounds = ClientRectangle; //e.ClipRectangle;
+ e.Graphics.FillRectangle(new SolidBrush(backgroundColor), bounds);
+ Pen pen = new Pen(gridColor);
+ pen.Width = 1;
+ int i = 0;
+ ArrayList sortedColumns = columns.ColumnDisplayIndexSortedArrayList;
+ bounds.Y = -verticalScrollingOffset;
+ bounds.X = -horizontalScrollingOffset;
+ gridWidth = 0;
+ foreach (DataGridViewColumn col in sortedColumns) {
+ gridWidth += col.Width;
+ }
+ if (columnHeadersVisible) {
+ Rectangle headerBounds = bounds;
+ if (rowHeadersVisible) {
+ headerBounds.X += rowHeadersWidth;
+ }
+ headerBounds.Height = columnHeadersHeight;
+ int j = 0;
+ foreach (DataGridViewColumn col in sortedColumns) {
+ headerBounds.Width = col.Width;
+ DataGridViewCell cell = col.HeaderCell;
+ DataGridViewCellStyle style = columnHeadersDefaultCellStyle;
+ DataGridViewAdvancedBorderStyle intermediateBorderStyle = (DataGridViewAdvancedBorderStyle) this.AdvancedColumnHeadersBorderStyle.Clone();;
+ DataGridViewAdvancedBorderStyle borderStyle = AdjustColumnHeaderBorderStyle(this.AdvancedColumnHeadersBorderStyle, intermediateBorderStyle, j == 0, j == columns.Count - 1);
+ cell.InternalPaint(e.Graphics, e.ClipRectangle, headerBounds, cell.RowIndex, cell.State, cell.Value, cell.FormattedValue, cell.ErrorText, style, borderStyle, DataGridViewPaintParts.All);
+ headerBounds.X += col.Width;
+ j++;
+ }
+ bounds.Y += columnHeadersHeight;
+ }
+ gridHeight = 0;
+ foreach (DataGridViewRow row in rows) {
+ gridHeight += row.Height;
+ if (rowHeadersVisible) {
+ Rectangle rowHeaderBounds = bounds;
+ rowHeaderBounds.Height = row.Height;
+ rowHeaderBounds.Width = rowHeadersWidth;
+ DataGridViewCell cell = row.HeaderCell;
+ DataGridViewCellStyle style = rowHeadersDefaultCellStyle;
+ DataGridViewAdvancedBorderStyle intermediateBorderStyle = (DataGridViewAdvancedBorderStyle) this.AdvancedRowHeadersBorderStyle.Clone();;
+ DataGridViewAdvancedBorderStyle borderStyle = cell.AdjustCellBorderStyle(this.AdvancedRowHeadersBorderStyle, intermediateBorderStyle, true, true, false, cell.RowIndex == 0);
+ cell.InternalPaint(e.Graphics, e.ClipRectangle, rowHeaderBounds, cell.RowIndex, cell.State, cell.Value, cell.FormattedValue, cell.ErrorText, style, borderStyle, DataGridViewPaintParts.All);
+ //e.Graphics.FillRectangle(new SolidBrush(rowHeadersDefaultCellStyle.BackColor), rowHeadersBounds);
+ bounds.X += rowHeadersWidth;
+ }
+ bounds.Height = row.Height;
+ for (int j = 0; j < sortedColumns.Count; j++) {
+ DataGridViewColumn col = (DataGridViewColumn) sortedColumns[j];
+ foreach (DataGridViewCell cell in row.Cells) {
+ if (cell.ColumnIndex == col.Index) {
+ bounds.Width = col.Width;
+ cell.SetSize(new Size(bounds.Width, bounds.Height));
+ DataGridViewCellStyle style = cell.InheritedStyle;
+ if (cell == currentCell && cell.IsInEditMode) {
+ cell.InitializeEditingControl(cell.RowIndex, cell.FormattedValue, style);
+ cell.PositionEditingControl(true, true, bounds, e.ClipRectangle, style, false, false, (columns[currentCell.ColumnIndex].DisplayIndex == 0), (currentCell.RowIndex == 0));
+ }
+ else {
+ DataGridViewAdvancedBorderStyle intermediateBorderStyle = (DataGridViewAdvancedBorderStyle) this.AdvancedCellBorderStyle.Clone();;
+ DataGridViewAdvancedBorderStyle borderStyle = cell.AdjustCellBorderStyle(this.AdvancedCellBorderStyle, intermediateBorderStyle, true, true, j == 0, cell.RowIndex == 0);
+ OnCellFormatting(new DataGridViewCellFormattingEventArgs(cell.ColumnIndex, cell.RowIndex, cell.Value, cell.FormattedValueType, style));
+ DataGridViewCellPaintingEventArgs args = new DataGridViewCellPaintingEventArgs (this, e.Graphics, e.ClipRectangle, bounds, cell.RowIndex, cell.ColumnIndex, cell.State, cell.Value, cell.FormattedValue, cell.ErrorText, style, borderStyle, DataGridViewPaintParts.All);
+ OnCellPainting(args);
+ if (!args.Handled) {
+ cell.InternalPaint(e.Graphics, e.ClipRectangle, bounds, cell.RowIndex, cell.State, cell.Value, cell.FormattedValue, cell.ErrorText, style, borderStyle, DataGridViewPaintParts.All);
+ }
+ }
+ bounds.X += bounds.Width;
+ }
+ }
+ }
+ bounds.Y += bounds.Height;
+ bounds.X = -horizontalScrollingOffset;
+ i++;
+ }
+ if (rowHeadersVisible) {
+ gridWidth += rowHeadersWidth;
+ }
+ if (columnHeadersVisible) {
+ gridHeight += columnHeadersHeight;
+ }
+ horizontalScrollBar.Visible = false;
+ verticalScrollBar.Visible = false;
+ if (AutoSize) {
+ if (gridWidth > Size.Width || gridHeight > Size.Height) {
+ Size = new Size(gridWidth, gridHeight);
+ }
+ }
+ else {
+ if (gridWidth > Size.Width) {
+ horizontalScrollBar.Visible = true;
+ }
+ if (gridHeight > Size.Height) {
+ verticalScrollBar.Visible = true;
+ }
+ if (horizontalScrollBar.Visible && (gridHeight + horizontalScrollBar.Height) > Size.Height) {
+ verticalScrollBar.Visible = true;
+ }
+ if (verticalScrollBar.Visible && (gridWidth + horizontalScrollBar.Width) > Size.Width) {
+ horizontalScrollBar.Visible = true;
+ }
+ if (horizontalScrollBar.Visible) {
+ horizontalScrollBar.Minimum = 0;
+ if (verticalScrollBar.Visible) {
+ horizontalScrollBar.Maximum = gridWidth - ClientRectangle.Width + verticalScrollBar.Width;
+ }
+ else {
+ horizontalScrollBar.Maximum = gridWidth - ClientRectangle.Width;
+ }
+ horizontalScrollBar.LargeChange = horizontalScrollBar.Maximum / 10;
+ horizontalScrollBar.SmallChange = horizontalScrollBar.Maximum / 20;
+ }
+ if (verticalScrollBar.Visible) {
+ verticalScrollBar.Minimum = 0;
+ if (horizontalScrollBar.Visible) {
+ verticalScrollBar.Maximum = gridHeight - ClientRectangle.Height + horizontalScrollBar.Height;
+ }
+ else {
+ verticalScrollBar.Maximum = gridHeight - ClientRectangle.Height;
+ }
+ verticalScrollBar.LargeChange = verticalScrollBar.Maximum / 10;
+ verticalScrollBar.SmallChange = verticalScrollBar.Maximum / 20;
+ }
+ }
+ if (horizontalScrollBar.Visible && !this.Controls.Contains(horizontalScrollBar)) {
+ this.Controls.Add(horizontalScrollBar);
+ }
+ else if (!horizontalScrollBar.Visible && this.Controls.Contains(horizontalScrollBar)) {
+ this.Controls.Remove(horizontalScrollBar);
+ }
+ if (verticalScrollBar.Visible && !this.Controls.Contains(verticalScrollBar)) {
+ this.Controls.Add(verticalScrollBar);
+ }
+ else if (!verticalScrollBar.Visible && this.Controls.Contains(verticalScrollBar)) {
+ this.Controls.Remove(verticalScrollBar);
+ }
+ }
+
+ protected virtual void OnReadOnlyChanged (EventArgs e) {
+ if (ReadOnlyChanged != null) {
+ ReadOnlyChanged(this, e);
+ }
+ }
+
+ protected override void OnResize (EventArgs e) {
+ base.OnResize(e);
+ horizontalScrollingOffset = ((gridWidth - Size.Width) > 0)? (gridWidth - Size.Width) : 0;
+ verticalScrollingOffset = ((gridHeight - Size.Height) > 0)? (gridHeight - Size.Height) : 0;
+
+ }
+
+ protected override void OnRightToLeftChanged (EventArgs e) {
+ base.OnRightToLeftChanged(e);
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowContextMenuStripChanged (DataGridViewRowEventArgs e) {
+ if (RowContextMenuStripChanged != null) {
+ RowContextMenuStripChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowContextMenuStripNeeded (DataGridViewRowContextMenuStripNeededEventArgs e) {
+ if (RowContextMenuStripNeeded != null) {
+ RowContextMenuStripNeeded(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowDefaultCellStyleChanged (DataGridViewRowEventArgs e) {
+ if (RowDefaultCellStyleChanged != null) {
+ RowDefaultCellStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowDirtyStateNeeded (QuestionEventArgs e) {
+ if (RowDirtyStateNeeded != null) {
+ RowDirtyStateNeeded(this, e);
+ }
+ }
+
+ protected virtual void OnRowDividerDoubleClick (DataGridViewRowDividerDoubleClickEventArgs e) {
+ if (RowDividerDoubleClick != null) {
+ RowDividerDoubleClick(this, e);
+ }
+ }
+
+ protected virtual void OnRowDividerHeightChanged (DataGridViewRowEventArgs e) {
+ if (RowDividerHeightChanged != null) {
+ RowDividerHeightChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowEnter (DataGridViewCellEventArgs e) {
+ if (RowEnter != null) {
+ RowEnter(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowErrorTextChanged (DataGridViewRowEventArgs e) {
+ if (RowErrorTextChanged != null) {
+ RowErrorTextChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowErrorTextNeeded (DataGridViewRowErrorTextNeededEventArgs e) {
+ if (RowErrorTextNeeded != null) {
+ RowErrorTextNeeded(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowHeaderCellChanged (DataGridViewRowEventArgs e) {
+ if (RowHeaderCellChanged != null) {
+ RowHeaderCellChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowHeaderMouseClick (DataGridViewCellMouseEventArgs e) {
+ if (RowHeaderMouseClick != null) {
+ RowHeaderMouseClick(this, e);
+ }
+ }
+
+ protected virtual void OnRowHeaderMouseDoubleClick (DataGridViewCellMouseEventArgs e) {
+ if (RowHeaderMouseDoubleClick != null) {
+ RowHeaderMouseDoubleClick(this, e);
+ }
+ }
+
+ protected virtual void OnRowHeadersBorderStyleChanged (EventArgs e) {
+ if (RowHeadersBorderStyleChanged != null) {
+ RowHeadersBorderStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowHeadersDefaultCellStyleChanged (EventArgs e) {
+ if (RowHeadersDefaultCellStyleChanged != null) {
+ RowHeadersDefaultCellStyleChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowHeadersWidthChanged (EventArgs e) {
+ if (RowHeadersWidthChanged != null) {
+ RowHeadersWidthChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowHeadersWidthSizeModeChanged (DataGridViewAutoSizeModeEventArgs e) {
+ if (RowHeadersWidthSizeModeChanged != null) {
+ RowHeadersWidthSizeModeChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowHeightChanged (DataGridViewRowEventArgs e) {
+ if (RowHeightChanged != null) {
+ RowHeightChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowHeightInfoNeeded (DataGridViewRowHeightInfoNeededEventArgs e) {
+ if (RowHeightInfoNeeded != null) {
+ RowHeightInfoNeeded(this, e);
+ }
+ }
+
+ protected virtual void OnRowHeightInfoPushed (DataGridViewRowHeightInfoPushedEventArgs e) {
+ if (RowHeightInfoPushed != null) {
+ RowHeightInfoPushed(this, e);
+ }
+ }
+
+ protected virtual void OnRowLeave (DataGridViewCellEventArgs e) {
+ if (RowLeave != null) {
+ RowLeave(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowMinimumHeightChanged (DataGridViewRowEventArgs e) {
+ if (RowMinimumHeightChanged != null) {
+ RowMinimumHeightChanged(this, e);
+ }
+ }
+
+ protected internal virtual void OnRowPostPaint (DataGridViewRowPostPaintEventArgs e) {
+ if (RowPostPaint != null) {
+ RowPostPaint(this, e);
+ }
+ }
+
+ protected internal virtual void OnRowPrePaint (DataGridViewRowPrePaintEventArgs e) {
+ if (RowPrePaint != null) {
+ RowPrePaint(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowsAdded (DataGridViewRowsAddedEventArgs e) {
+ if (RowsAdded != null) {
+ RowsAdded(this, e);
+ }
+ }
+
+ protected virtual void OnRowsDefaultCellStyleChanged (EventArgs e) {
+ if (RowsDefaultCellStyleChanged != null) {
+ RowsDefaultCellStyleChanged(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowsRemoved (DataGridViewRowsRemovedEventArgs e) {
+ if (RowsRemoved != null) {
+ RowsRemoved(this, e);
+ }
+ }
+
+ // In MSDN2 documentation there's no internal here
+ protected internal virtual void OnRowStateChanged (int rowIndex, DataGridViewRowStateChangedEventArgs e) {
+ if (RowStateChanged != null) {
+ RowStateChanged(this, e);
+ }
+ }
+
+ protected virtual void OnRowUnshared (DataGridViewRowEventArgs e) {
+ if (RowUnshared != null) {
+ RowUnshared(this, e);
+ }
+ }
+
+ protected virtual void OnRowValidated (DataGridViewCellEventArgs e) {
+ if (RowValidated != null) {
+ RowValidated(this, e);
+ }
+ }
+
+ protected virtual void OnRowValidating (DataGridViewCellCancelEventArgs e) {
+ if (RowValidating != null) {
+ RowValidating(this, e);
+ }
+ }
+
+ protected virtual void OnScroll (ScrollEventArgs e) {
+ if (Scroll != null) {
+ Scroll(this, e);
+ }
+ }
+
+ protected virtual void OnSelectionChanged (EventArgs e) {
+ if (SelectionChanged != null) {
+ SelectionChanged(this, e);
+ }
+ }
+
+ protected virtual void OnSortCompare (DataGridViewSortCompareEventArgs e) {
+ if (SortCompare != null) {
+ SortCompare(this, e);
+ }
+ }
+
+ protected virtual void OnSorted (EventArgs e) {
+ if (Sorted != null) {
+ Sorted(this, e);
+ }
+ }
+
+ protected virtual void OnUserAddedRow (DataGridViewRowEventArgs e) {
+ if (UserAddedRow != null) {
+ UserAddedRow(this, e);
+ }
+ }
+
+ protected virtual void OnUserDeletedRow (DataGridViewRowEventArgs e) {
+ if (UserDeletedRow != null) {
+ UserDeletedRow(this, e);
+ }
+ }
+
+ protected virtual void OnUserDeletingRow (DataGridViewRowCancelEventArgs e) {
+ if (UserDeletingRow != null) {
+ UserDeletingRow(this, e);
+ }
+ }
+
+ protected override void OnValidating (CancelEventArgs e) {
+ base.OnValidating(e);
+ }
+
+ protected override void OnVisibleChanged (EventArgs e) {
+ base.OnVisibleChanged(e);
+ }
+
+ protected virtual void PaintBackground (Graphics graphics, Rectangle clipBounds, Rectangle gridBounds) {
+ }
+
+ protected bool ProcessAKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessDataGridViewKey (KeyEventArgs e) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessDeleteKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected override bool ProcessDialogKey (Keys keyData) {
+ return base.ProcessDialogKey(keyData);
+ //throw new NotImplementedException();
+ }
+
+ protected bool ProcessDownKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessEndKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessEnterKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessEscapeKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessF2Key (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessHomeKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessInsertKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected override bool ProcessKeyEventArgs (ref Message m) {
+ return base.ProcessKeyEventArgs(ref m);
+ //throw new NotImplementedException();
+ }
+
+ protected override bool ProcessKeyPreview (ref Message m) {
+ return base.ProcessKeyPreview(ref m);
+ //throw new NotImplementedException();
+ }
+
+ protected bool ProcessLeftKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessNextKey (Keys keyData) {
+ // PAGE DOWN
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessPriorKey (Keys keyData) {
+ // PAGE UP
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessRightKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessSpaceKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessTabKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessUpKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected bool ProcessZeroKey (Keys keyData) {
+ throw new NotImplementedException();
+ }
+
+ protected override void SetBoundsCore (int x, int y, int width, int height, BoundsSpecified specified) {
+ base.SetBoundsCore(x, y, width, height, specified);
+ }
+
+ protected virtual bool SetCurrentCellAddressCore (int columnIndex, int rowIndex, bool setAnchorCellAddress, bool validateCurrentCell, bool throughMouseClick) {
+ throw new NotImplementedException();
+ }
+
+ protected virtual void SetSelectedCellCore (int columnIndex, int rowIndex, bool selected) {
+ throw new NotImplementedException();
+ }
+
+ protected virtual void SetSelectedColumnCore (int columnIndex, bool selected) {
+ throw new NotImplementedException();
+ }
+
+ protected virtual void SetSelectedRowCore (int rowIndex, bool selected) {
+ throw new NotImplementedException();
+ }
+
+ protected override void WndProc (ref Message m) {
+ base.WndProc(ref m);
+ }
+
+ internal void InternalOnCellClick (DataGridViewCellEventArgs e) {
+ OnCellClick(e);
+ }
+
+ internal void InternalOnCellContentClick (DataGridViewCellEventArgs e) {
+ OnCellContentClick(e);
+ }
+
+ internal void InternalOnCellContentDoubleClick (DataGridViewCellEventArgs e) {
+ OnCellContentDoubleClick(e);
+ }
+
+ internal void InternalOnCellValueChanged (DataGridViewCellEventArgs e) {
+ OnCellValueChanged(e);
+ }
+
+ internal void InternalOnDataError (DataGridViewDataErrorEventArgs e) {
+ /////////////// false? ////////////
+ OnDataError(false, e);
+ }
+
+ internal void InternalOnMouseWheel (MouseEventArgs e) {
+ OnMouseWheel(e);
+ }
+
+ internal void OnHScrollBarScroll (object sender, ScrollEventArgs e) {
+ horizontalScrollingOffset = e.NewValue;
+ Invalidate();
+ OnScroll(e);
+ }
+
+ internal void OnVScrollBarScroll (object sender, ScrollEventArgs e) {
+ verticalScrollingOffset = e.NewValue;
+ Invalidate();
+ OnScroll(e);
+ }
+
+ internal void RaiseCellStyleChanged (DataGridViewCellEventArgs e) {
+ OnCellStyleChanged(e);
+ }
+
+ internal void OnColumnCollectionChanged (object sender, CollectionChangeEventArgs e) {
+ switch (e.Action) {
+ case CollectionChangeAction.Add:
+ OnColumnAdded(new DataGridViewColumnEventArgs(e.Element as DataGridViewColumn));
+ break;
+ case CollectionChangeAction.Remove:
+ OnColumnRemoved(new DataGridViewColumnEventArgs(e.Element as DataGridViewColumn));
+ break;
+ case CollectionChangeAction.Refresh:
+ break;
+ }
+ }
+
+ private void BindIList (IList list) {
+ if (list.Count > 0) {
+ DataGridViewCell template = new DataGridViewTextBoxCell();
+ foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(list[0])) {
+ DataGridViewColumn col = new DataGridViewColumn(template);
+ col.Name = property.DisplayName;
+ columns.Add(col);
+ }
+ }
+ foreach (object element in list) {
+ DataGridViewRow row = new DataGridViewRow();
+ rows.InternalAdd(row);
+ PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(element);
+ foreach (PropertyDescriptor property in properties) {
+ DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell();
+ cell.Value = property.GetValue(element);
+ cell.ValueType = property.PropertyType;
+ row.Cells.Add(cell);
+ }
+ }
+ }
+
+ private void BindIListSource (IListSource list) {
+ BindIList(list.GetList());
+ }
+
+ private void BindIBindingList (IBindingList list) {
+ BindIList(list);
+ }
+
+ private void BindIBindingListView (IBindingListView list) {
+ BindIList(list);
+ }
+
+ public sealed class HitTestInfo {
+
+ public static readonly HitTestInfo Nowhere = new HitTestInfo(-1, -1, -1, -1, DataGridViewHitTestType.None);
+
+ private int columnIndex;
+ private int columnX;
+ private int rowIndex;
+ private int rowY;
+ private DataGridViewHitTestType type;
+
+ internal HitTestInfo (int columnIndex, int columnX, int rowIndex, int rowY, DataGridViewHitTestType type) {
+ this.columnIndex = columnIndex;
+ this.columnX = columnX;
+ this.rowIndex = rowIndex;
+ this.rowY = rowY;
+ this.type = type;
+ }
+
+ public int ColumnIndex {
+ get { return columnIndex; }
+ }
+
+ public int ColumnX {
+ get { return columnX; }
+ }
+
+ public int RowIndex {
+ get { return rowIndex; }
+ }
+
+ public int RowY {
+ get { return rowY; }
+ }
+
+ public DataGridViewHitTestType Type {
+ get { return type; }
+ }
+
+ public override bool Equals (object value) {
+ if (value is HitTestInfo) {
+ HitTestInfo aux = (HitTestInfo) value;
+ if (aux.columnIndex == columnIndex && aux.columnX == columnX && aux.rowIndex == rowIndex && aux.rowY == rowY && aux.type == type) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public override int GetHashCode () {
+ return base.GetHashCode();
+ }
+
+ public override string ToString () {
+ return GetType().Name;
+ }
+
+ }
+
+ [ComVisibleAttribute(true)]
+ protected class DataGridViewAccessibleObject : ControlAccessibleObject {
+
+ public DataGridViewAccessibleObject (DataGridView owner) : base (owner){
+ }
+
+ public override AccessibleRole Role {
+ get { return base.Role; }
+ }
+
+ public override AccessibleObject GetChild (int index) {
+ return base.GetChild(index);
+ }
+
+ public override int GetChildCount () {
+ return base.GetChildCount();
+ }
+
+ public override AccessibleObject GetFocused () {
+ return base.GetFocused();
+ }
+
+ public override AccessibleObject GetSelected () {
+ return base.GetSelected();
+ }
+
+ public override AccessibleObject HitTest (int x, int y) {
+ return base.HitTest(x, y);
+ }
+
+ public override AccessibleObject Navigate( AccessibleNavigation navigationDirection) {
+ return base.Navigate(navigationDirection);
+ }
+
+ }
+
+ }
+
+}
+
+#endif