using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; using System.Media; using System.Runtime.InteropServices; using System.Threading; using System.Windows.Forms; using DevComponents.DotNetBar.Controls; using DevComponents.DotNetBar.ScrollBar; using DevComponents.DotNetBar.SuperGrid.Style; using DevComponents.SuperGrid.TextMarkup; using Timer = System.Windows.Forms.Timer; namespace DevComponents.DotNetBar.SuperGrid { /// /// Represents a Super Grid Control. /// [ToolboxItem(true), ToolboxBitmap(typeof(SuperGridControl), "SuperGridControl.png")] [Designer("DevComponents.SuperGrid.Design.SuperGridDesigner, DevComponents.SuperGrid.Design, Version=14.1.0.37, Culture=neutral, PublicKeyToken=26d81176cfa2b486")] public class SuperGridControl : Control, INotifyPropertyChanged, IMessageFilter, IOwnerLocalize { #region Events #region ActiveGridChanged /// /// Occurs when the active grid changes /// [Description("Occurs when the active grid changes.")] public event EventHandler ActiveGridChanged; #endregion #region CellActivated /// /// Occurs when a cell has been made the Active Cell /// [Description("Occurs when a cell has been made the Active Cell.")] public event EventHandler CellActivated; #endregion #region CellActivating /// /// Occurs when a cell is about to be made the Active Cell /// [Description("Occurs when a cell is about to be made the Active Cell.")] public event EventHandler CellActivating; #endregion #region CellClick /// /// Occurs when a cell has been clicked /// [Description("Occurs when a cell has been clicked.")] public event EventHandler CellClick; #endregion #region CellDoubleClick /// /// Occurs when a cell has been double clicked /// [Description("Occurs when a cell has been double clicked.")] public event EventHandler CellDoubleClick; #endregion #region CellInfoClick /// /// Occurs when a cell InfoImage has been clicked /// [Description("Occurs when a cell InfoImage has been clicked.")] public event EventHandler CellInfoClick; #endregion #region CellInfoDoubleClick /// /// Occurs when a cell InfoImage has been double clicked /// [Description("Occurs when a cell InfoImage has been double clicked.")] public event EventHandler CellInfoDoubleClick; #endregion #region CellInfoEnter /// /// Occurs when a Cell InfoImage has been entered via the mouse /// [Description("Occurs when a Cell InfoImage has been entered via the mouse.")] public event EventHandler CellInfoEnter; #endregion #region CellInfoLeave /// /// Occurs when a Cell InfoImage has been exited via the mouse /// [Description("Occurs when a Cell InfoImage has been exited via the mouse.")] public event EventHandler CellInfoLeave; #endregion #region CellMouseDown /// /// Occurs when a mouse button is pressed /// while the mouse pointer is within a cell /// [Description("Occurs when a mouse button is pressed while the mouse pointer is within a cell.")] public event EventHandler CellMouseDown; #endregion #region CellMouseEnter /// /// Occurs when the mouse pointer enters a cell /// [Description("Occurs when the mouse pointer enters a cell.")] public event EventHandler CellMouseEnter; #endregion #region CellMouseLeave /// /// Occurs when the mouse pointer leaves a cell /// [Description("Occurs when the mouse pointer leaves a cell.")] public event EventHandler CellMouseLeave; #endregion #region CellMouseMove /// /// Occurs when the mouse pointer moves within a cell /// [Description("Occurs when the mouse pointer leaves a cell.")] public event EventHandler CellMouseMove; #endregion #region CellMouseUp /// /// Occurs when a mouse button is released /// while the mouse pointer is within a cell /// [Description("Occurs when a mouse button is released while the mouse pointer is within a cell.")] public event EventHandler CellMouseUp; #endregion #region CellValidating /// /// Occurs when a cell needs validating /// [Description("Occurs when a cell needs validating.")] public event EventHandler CellValidating; #endregion #region CellValidated /// /// Occurs when a cell has finished validating /// [Description("Occurs when a cell has finished validating.")] public event EventHandler CellValidated; #endregion #region Check events /// /// Occurs when a row check state is about to change /// [Description("Occurs when a row check state is about to change.")] public event EventHandler BeforeCheck; /// /// Occurs when a row check state has changed /// [Description("Occurs when a row check state has changed.")] public event EventHandler AfterCheck; #endregion #region Collapse events /// /// Occurs when a row is about to collapse /// [Description("Occurs when a row is about to collapse.")] public event EventHandler BeforeCollapse; /// /// Occurs when a row has just been collapsed /// [Description("Occurs when a row has just been collapsed.")] public event EventHandler AfterCollapse; #endregion #region CellUserFunction /// /// Occurs when a cell User function needs evaluated /// [Description("Occurs when a cell User function needs evaluated.")] public event EventHandler CellUserFunction; #endregion #region CellValueChanged /// /// Occurs when any cell Value changes /// [Description("Occurs when any cell Value changes.")] public event EventHandler CellValueChanged; #endregion #region ColumnGrouped /// /// Occurs when a column has been Grouped /// [Description("Occurs when a column has been Grouped.")] public event EventHandler ColumnGrouped; #endregion #region ColumnHeaderClick /// /// Occurs when a column header has been clicked /// [Description("Occurs when a column header has been clicked.")] public event EventHandler ColumnHeaderClick; #endregion #region ColumnHeaderDoubleClick /// /// Occurs when a column header has been double clicked /// [Description("Occurs when a column header has been double clicked.")] public event EventHandler ColumnHeaderDoubleClick; #endregion #region ColumnHeaderMarkupLinkClick /// /// Occurs when a GridColumn Header has a MarkupLink that has been clicked /// [Description("Occurs when a GridColumn Header has a MarkupLink that has been clicked.")] public event EventHandler ColumnHeaderMarkupLinkClick; #endregion #region ColumnHeaderMouseDown /// /// Occurs when a mouse button is pressed /// while the mouse pointer is within the Column Header /// [Description("Occurs when a mouse button is pressed while the mouse pointer is within the Column Header.")] public event EventHandler ColumnHeaderMouseDown; #endregion #region ColumnHeaderMouseEnter /// /// Occurs when the mouse pointer enters the Column Header /// [Description("Occurs when the mouse pointer enters the Column Header.")] public event EventHandler ColumnHeaderMouseEnter; #endregion #region ColumnHeaderMouseLeave /// /// Occurs when the mouse pointer leaves the Column Header /// [Description("Occurs when the mouse pointer leaves the Column Header.")] public event EventHandler ColumnHeaderMouseLeave; #endregion #region ColumnHeaderMouseMove /// /// Occurs when the mouse pointer moves within the Column Header /// [Description("Occurs when the mouse pointer leaves the Column Header.")] public event EventHandler ColumnHeaderMouseMove; #endregion #region ColumnHeaderMouseUp /// /// Occurs when a mouse button is released /// while the mouse pointer is within the Column Header /// [Description("Occurs when a mouse button is released while the mouse pointer is within the Column Header.")] public event EventHandler ColumnHeaderMouseUp; #endregion #region ColumnGroupHeaderClick /// /// Occurs when a column GroupHeader has been clicked /// [Description("Occurs when a column GroupHeader has been clicked.")] public event EventHandler ColumnGroupHeaderClick; #endregion #region ColumnGroupHeaderDoubleClick /// /// Occurs when a column GroupHeader has been double clicked /// [Description("Occurs when a column GroupHeader has been double clicked.")] public event EventHandler ColumnGroupHeaderDoubleClick; #endregion #region ColumnGroupHeaderMarkupLinkClick /// /// Occurs when a GridColumn GroupHeader has a MarkupLink that has been clicked /// [Description("Occurs when a GridColumn GroupHeader has a MarkupLink that has been clicked.")] public event EventHandler ColumnGroupHeaderMarkupLinkClick; #endregion #region ColumnResized /// /// Occurs when a column GroupHeader has been resized /// [Description("Occurs when a column GroupHeader has been resized.")] public event EventHandler ColumnGroupHeaderResized; #endregion #region ColumnMoved /// /// Occurs when a column has been moved or reordered /// [Description("Occurs when a column has been moved or reordered.")] public event EventHandler ColumnMoved; #endregion #region ColumnResized /// /// Occurs when a column has been resized /// [Description("Occurs when a column has been resized.")] public event EventHandler ColumnResized; #endregion #region ColumnRowHeaderClick /// /// Occurs when a column RowHeader has been clicked /// [Description("Occurs when a column RowHeader has been clicked.")] public event EventHandler ColumnRowHeaderClick; #endregion #region ColumnRowHeaderDoubleClick /// /// Occurs when a column RowHeader has been double clicked /// [Description("Occurs when a column RowHeader has been double clicked.")] public event EventHandler ColumnRowHeaderDoubleClick; #endregion #region CompareElements /// /// Occurs when the grid needs to compare 1 element with another /// [Description("Occurs when the grid needs to compare 1 element with another.")] public event EventHandler CompareElements; #endregion #region DataBindingStart /// /// Occurs when the grid is about to start a nested binding operation /// [Description("Occurs when the grid is about to start a nested binding operation.")] public event EventHandler DataBindingStart; #endregion #region DataBindingComplete /// /// Occurs when a grid's data binding is complete /// [Description("Occurs when a grid's data binding is complete.")] public event EventHandler DataBindingComplete; #endregion #region DataError /// /// Occurs when an error is encountered while dealing with data /// [Description("Occurs when an error is encountered while dealing with data.")] public event EventHandler DataError; #endregion #region DataFilteringStart /// /// Occurs when the grid is about to start a data filtering operation /// [Description("Occurs when the grid is about to start a data filtering operation.")] public event EventHandler DataFilteringStart; #endregion #region DataFilteringComplete /// /// Occurs when a grid's data Filtering is complete /// [Description("Occurs when a grid's data filtering is complete.")] public event EventHandler DataFilteringComplete; #endregion #region ItemDrag /// /// Occurs when a user begins dragging an item /// [Description("Occurs when a user begins dragging an item.")] public event EventHandler ItemDrag; #endregion #region Editor events #region BeginEdit /// /// Occurs when a modal cell edit is about to begin /// [Description("Occurs when a modal cell edit is about to begin.")] public event EventHandler BeginEdit; #endregion #region CancelEdit /// /// Occurs when a modal cell edit has been canceled /// [Description("Occurs when a modal cell edit has been canceled.")] public event EventHandler CancelEdit; #endregion #region CloseEdit /// /// Occurs when a modal cell edit has closed /// [Description("Occurs when a modal cell edit has closed.")] public event EventHandler CloseEdit; #endregion #region EditorValueChanged /// /// Occurs when a cell editor value has changed /// [Description("Occurs when a cell editor value has changed.")] public event EventHandler EditorValueChanged; #endregion #region EndEdit /// /// Occurs when a modal cell edit is ending /// [Description("Occurs when a modal cell edit is ending.")] public event EventHandler EndEdit; #endregion #region GetEditor /// /// Occurs when a cell editor is needed /// [Description("Occurs when a cell editor is needed.")] public event EventHandler GetEditor; #endregion #region GetRenderer /// /// Occurs when a cell renderer is needed /// [Description("Occurs when a cell renderer is needed.")] public event EventHandler GetRenderer; #endregion #region InitEditContext /// /// Occurs when a cell editor needs it's context initialized /// [Description("Occurs when a cell editor needs it's context initialized.")] public event EventHandler InitEditContext; #endregion #endregion #region Expand events /// /// Occurs when a row is about to be expanded /// [Description("Occurs when a row is about to be expanded.")] public event EventHandler BeforeExpand; /// /// Occurs when a row has just been expanded /// [Description("Occurs when a row has just been expanded.")] public event EventHandler AfterExpand; #endregion #region Filter events #region FilterBeginEdit /// /// Occurs when a column filter edit is about to begin /// [Description("Occurs when a column filter edit is about to begin.")] public event EventHandler FilterBeginEdit; #endregion #region FilterCancelEdit /// /// Occurs when a column filter edit has been canceled /// [Description("Occurs when a column filter edit has been canceled.")] public event EventHandler FilterCancelEdit; #endregion #region FilterColumnError /// /// Occurs when a column filter error has occurred /// [Description("Occurs when a column filter error has ocurred.")] public event EventHandler FilterColumnError; #endregion #region FilterEditValueChanged /// /// Occurs when a filter edit value has changed /// [Description("Occurs when a filter edit value has changed.")] public event EventHandler FilterEditValueChanged; #endregion #region FilterEndEdit /// /// Occurs when a column filter edit has ended /// [Description("Occurs when a column filter edit has ended.")] public event EventHandler FilterEndEdit; #endregion #region FilterHeaderClick /// /// Occurs when a Filter header has been clicked /// [Description("Occurs when a Filter header has been clicked.")] public event EventHandler FilterHeaderClick; #endregion #region FilterHelpClosing /// /// Occurs when a filter expression help window is about to close /// [Description("Occurs when a filter expression help window is about to close.")] public event EventHandler FilterHelpClosing; #endregion #region FilterHelpOpening /// /// Occurs when a filter expression help window is about to open /// [Description("Occurs when a filter expression help window is about to open.")] public event EventHandler FilterHelpOpening; #endregion #region FilterItemsLoaded /// /// Occurs following the loading of the items in the /// ComboBox, when a ComboBox filter edit is about to begin /// [Description("Occurs following the loading of the items in the ComboBox, when a ComboBox filter edit is about to begin.")] public event EventHandler FilterItemsLoaded; #endregion #region FilterLoadItems /// /// Occurs when a ComboBox filter edit is about to begin /// and the items in the comboBox need to be loaded /// [Description("Occurs when a ComboBox filter edit is about to begin and the items in the comboBox need to be loaded.")] public event EventHandler FilterLoadItems; #endregion #region FilterLoadUserData /// /// Occurs when user defined Filter data needs to be loaded /// [Description("Occurs when user defined Filter data needs to be loaded.")] public event EventHandler FilterLoadUserData; #endregion #region FilterPopupClosing /// /// Occurs when a column filter menu is closing /// [Description("Occurs when a column filter menu is closing.")] public event EventHandler FilterPopupClosing; #endregion #region FilterPopupLoad /// /// Occurs when a column filter menu needs loaded /// [Description("Occurs when a column filter menu needs loaded.")] public event EventHandler FilterPopupLoad; #endregion #region FilterPopupLoaded /// /// Occurs after a column filter menu has been loaded /// [Description("Occurs after a column filter menu has been loaded.")] public event EventHandler FilterPopupLoaded; #endregion #region FilterPopupOpening /// /// Occurs when a column filter menu is about to open /// [Description("Occurs when a column filter menu is about to open.")] public event EventHandler FilterPopupOpening; #endregion #region FilterPopupValueChanged /// /// Occurs when a filter popup value has changed /// [Description("Occurs when a filter popup value has changed.")] public event EventHandler FilterPopupValueChanged; #endregion #region FilterRowError /// /// Occurs when a row filter error has occurred /// [Description("Occurs when a row filter error has occurred.")] public event EventHandler FilterRowError; #endregion #region FilterRowHeaderClick /// /// Occurs when a Filter RowHeader has been clicked /// [Description("Occurs when a Filter RowHeader has been clicked.")] public event EventHandler FilterRowHeaderClick; #endregion #region FilterStoreUserData /// /// Occurs when user defined Filter data needs to be stored /// [Description("Occurs when user defined Filter data needs to be loaded.")] public event EventHandler FilterStoreUserData; #endregion #region FilterUserFunction /// /// Occurs when a Filter User function needs evaluated /// [Description("Occurs when a Filter User function needs evaluated.")] public event EventHandler FilterUserFunction; #endregion #region GetFilterEditType /// /// Occurs when the column filter edit type is needed /// [Description("Occurs when the column filter edit type is needed.")] public event EventHandler GetFilterEditType; #endregion #endregion #region GetCellRanges /// /// Occurs when the grid needs to get the current merged cell ranges /// [Description("Occurs when the grid needs to get the current merged cell ranges.")] public event EventHandler GetCellRanges; #endregion #region GetCellFormattedValue /// /// Occurs when a Modal cell Value needs formatted /// [Description("Occurs when a Modal cell Value needs formatted.")] public event EventHandler GetCellFormattedValue; #endregion #region GetCellRangeFormattedValue /// /// Occurs when a CellRange Formatted Value is needed /// [Description("Occurs when a CellRange Formatted Value is needed.")] public event EventHandler GetCellRangeFormattedValue; #endregion #region GetCellStyle /// /// Occurs when a Cell Style is needed /// [Description("Occurs when a Cell Style is needed.")] public event EventHandler GetCellStyle; #endregion #region GetCellToolTip /// /// Occurs when a Cell ToolTip is needed /// [Description("Occurs when a Cell ToolTip is needed.")] public event EventHandler GetCellToolTip; #endregion #region GetCellValue /// /// Occurs when a Cell Value is needed /// [Description("Occurs when a Cell Value is needed.")] public event EventHandler GetCellValue; #endregion #region GetColumnGroupHeaderStyle /// /// Occurs when a ColumnGroupHeader style is needed /// [Description("Occurs when a ColumnGroupHeader style is needed.")] public event EventHandler GetColumnGroupHeaderStyle; #endregion #region GetColumnHeaderRowHeaderStyle /// /// Occurs when a ColumnHeader RowHeader style is needed /// [Description("Occurs when a ColumnHeader RowHeader style is needed.")] public event EventHandler GetColumnHeaderRowHeaderStyle; #endregion #region GetColumnHeaderStyle /// /// Occurs when a ColumnHeader style is needed /// [Description("Occurs when a ColumnHeader style is needed.")] public event EventHandler GetColumnHeaderStyle; #endregion #region GetColumnHeaderToolTip /// /// Occurs when a ColumnHeader ToolTip is needed /// [Description("Occurs when a ColumnHeader ToolTip is needed.")] public event EventHandler GetColumnHeaderToolTip; #endregion #region GetDisplayRanges /// /// Occurs when the grid needs to get the current display ranges /// [Description("Occurs when the grid needs to get the current display ranges.")] public event EventHandler GetDisplayRanges; #endregion #region GetFilterRowStyle /// /// Occurs when a FilterRow style is needed /// [Description("Occurs when a FilterRow style is needed.")] public event EventHandler GetFilterRowStyle; #endregion #region GetFilterColumnHeaderStyle /// /// Occurs when a Filter ColumnHeader style is needed /// [Description("Occurs when a Filter ColumnHeader style is needed.")] public event EventHandler GetFilterColumnHeaderStyle; #endregion #region ConfigureGroupBox /// /// Occurs when a GroupBox Size is needed /// [Description("Occurs when a GroupBox needs configured.")] public event EventHandler ConfigureGroupBox; #endregion #region GetGroupDetailRows /// /// Occurs when a list of group detail rows is needed /// [Description("Occurs when a list of group detail rows is needed.")] public event EventHandler GetGroupDetailRows; #endregion #region GetGroupHeaderStyle /// /// Occurs when an GroupHeader style is needed /// [Description("Occurs when a GroupHeader style is needed.")] public event EventHandler GetGroupHeaderStyle; #endregion #region GetColumnGroupHeaderToolTip /// /// Occurs when a ColumnGroupHeader ToolTip is needed /// [Description("Occurs when a ColumnGroupHeader ToolTip is needed.")] public event EventHandler GetColumnGroupHeaderToolTip; #endregion #region GetMergedCellStyle /// /// Occurs when a Merged Cell Style is needed /// [Description("Occurs when a Merged Cell Style is needed.")] public event EventHandler GetMergedCellStyle; #endregion #region GetPanelStyle /// /// Occurs when a GridPanel style is needed /// [Description("Occurs when a GridPanel style is needed.")] public event EventHandler GetPanelStyle; #endregion #region GetGroupId /// /// Occurs when an element Group identifier is needed /// [Description("Occurs when an element Group identifier is needed.")] public event EventHandler GetGroupId; #endregion #region GetRowCellStyle /// /// Occurs when a row CellStyle is needed /// [Description("Occurs when a row CellStyle is needed.")] public event EventHandler GetRowCellStyle; #endregion #region GetRowHeaderStyle /// /// Occurs when a row RowHeader style is needed /// [Description("Occurs when a row RowHeader style is needed.")] public event EventHandler GetRowHeaderStyle; #endregion #region GetRowHeaderText /// /// Occurs when a row's header text is needed /// [Description("Occurs when a row's header text is needed.")] public event EventHandler GetRowHeaderText; #endregion #region GetRowStyle /// /// Occurs when a row style is needed /// [Description("Occurs when a row style is needed.")] public event EventHandler GetRowStyle; #endregion #region GroupSorting /// /// Occurs when a grid Group is about to be sorted /// [Description("Occurs when a grid Group are about to be sorted.")] public event EventHandler GroupSorting; #endregion #region GroupSorted /// /// Occurs when a grid Group has been sorted /// [Description("Occurs when a grid Group has been sorted.")] public event EventHandler GroupSorted; #endregion #region GetTextRowStyle /// /// Occurs when a GridTextRow (Header, footer, etc) style is needed /// [Description("Occurs when a GridTextRow (Header, footer, etc) style is needed.")] public event EventHandler GetTextRowStyle; #endregion #region GroupChanged /// /// Occurs when column Grouping has changed /// [Description("Occurs when column Grouping has changed.")] public event EventHandler GroupChanged; #endregion #region GroupHeaderClick /// /// Occurs when a Group Header has been clicked /// [Description("Occurs when a Group Header has been clicked.")] public event EventHandler GroupHeaderClick; #endregion #region GroupHeaderDoubleClick /// /// Occurs when a Group Header has been double clicked /// [Description("Occurs when a Group Header has been double clicked.")] public event EventHandler GroupHeaderDoubleClick; #endregion #region LayoutOrderUpdating /// /// Occurs when a grid panel's order layout is being updated /// [Description("Occurs when a grid panel's order layout is being updated.")] public event EventHandler LayoutOrderUpdating; #endregion #region LayoutOrderUpdated /// /// Occurs when a grid panel's order layout has been updated /// [Description("Occurs when a grid panel's order layout has been updated.")] public event EventHandler LayoutOrderUpdated; #endregion #region LocalizeString /// /// Occurs when the SuperGrid is looking for translated text for one of the internal text that are /// displayed on menus, toolbars and customize forms. You need to set Handled=true if you want /// your custom text to be used instead of the built-in system value. /// public event DotNetBarManager.LocalizeStringEventHandler LocalizeString; #endregion #region NoRowsMarkupLinkClick /// /// Occurs when a GridPanel's NoRowsText has a MarkupLink that has been clicked /// [Description("Occurs when a GridPanel's NoRowsText has a MarkupLink that has been clicked.")] public event EventHandler NoRowsMarkupLinkClick; #endregion #region PlayingSound /// /// Occurs when the grid is about to play a system sound (beep). /// [Description("Occurs when the grid is about to play a system sound (beep)..")] public event EventHandler PlayingSound; #endregion #region GridPreviewKeyDown /// /// GridPreviewKeyDown /// [Description("PreviewKeyDown event, with the ability to specify that the key has been handled.")] public event EventHandler GridPreviewKeyDown; #endregion #region PreviewKeyDown /// /// PreviewKeyDown /// [Description("Occurs before the System.Windows.Forms.Control.KeyDown event when a key is pressed while focus is on this control.")] public new event EventHandler PreviewKeyDown; #endregion #region RefreshFilter /// /// Occurs when the Virtual row filter needs refreshed /// [Description("Occurs when the Virtual row filter needs refreshed.")] public event EventHandler RefreshFilter; #endregion #region Render events #region PostRenderCell /// /// Occurs after a cell has been rendered /// [Description("Occurs after a cell has been rendered.")] public event EventHandler PostRenderCell; #endregion #region PreRenderCell /// /// Occurs when a cell is about to be rendered /// [Description("Occurs when a cell is about to be rendered.")] public event EventHandler PreRenderCell; #endregion #region PostRenderPanelRow /// /// Occurs when a nested Panel Row has been rendered /// [Description("Occurs when a nested Panel Row has been rendered.")] public event EventHandler PostRenderPanelRow; #endregion #region PreRenderPanelRow /// /// Occurs when a nested Panel Row is about to be rendered /// [Description("Occurs when a nested Panel Row is about to be rendered.")] public event EventHandler PreRenderPanelRow; #endregion #region PostRenderRow /// /// Occurs after a row has been rendered /// [Description("Occurs after a row has been rendered.")] public event EventHandler PostRenderRow; #endregion #region PreRenderRow /// /// Occurs when a row is about to be rendered /// [Description("Occurs when a row is about to be rendered.")] public event EventHandler PreRenderRow; #endregion #region PostRenderTextRow /// /// Occurs after a TextRow (Caption, Footer, etc) has been rendered /// [Description("Occurs after a TextRow has been rendered.")] public event EventHandler PostRenderTextRow; #endregion #region PreRenderTextRow /// /// Occurs when a TextRow (Caption, Footer, etc) is about to be rendered /// [Description("Occurs when a TextRow is about to be rendered.")] public event EventHandler PreRenderTextRow; #endregion #region PostRenderGroupHeader /// /// Occurs after a Group header has been rendered /// [Description("Occurs after a Group header has been rendered.")] public event EventHandler PostRenderGroupHeader; #endregion #region PreRenderGroupHeader /// /// Occurs when a Group header is about to be rendered /// [Description("Occurs when a Group header is about to be rendered.")] public event EventHandler PreRenderGroupHeader; #endregion #region PostRenderColumnHeader /// /// Occurs after a Column header has been rendered /// [Description("Occurs after a Column header has been rendered.")] public event EventHandler PostRenderColumnHeader; #endregion #region PreRenderColumnHeader /// /// Occurs when a Column header is about to be rendered /// [Description("Occurs when a Column header is about to be rendered.")] public event EventHandler PreRenderColumnHeader; #endregion #region PostRenderColumnGroupHeader /// /// Occurs after a Column GroupHeader has been rendered /// [Description("Occurs after a Column GroupHeader has been rendered.")] public event EventHandler PostRenderColumnGroupHeader; #endregion #region PreRenderColumnGroupHeader /// /// Occurs when a Column GroupHeader is about to be rendered /// [Description("Occurs when a Column GroupHeader is about to be rendered.")] public event EventHandler PreRenderColumnGroupHeader; #endregion #region PostRenderFilterPopupGripBar /// /// Occurs after a FilterPopup GripBar has been rendered /// [Description("Occurs after a FilterPopup GripBar has been rendered.")] public event EventHandler PostRenderFilterPopupGripBar; #endregion #region PreRenderFilterPopupGripBar /// /// Occurs when a FilterPopup GripBar is about to be rendered /// [Description("Occurs when a FilterPopup GripBar is about to be rendered.")] public event EventHandler PreRenderFilterPopupGripBar; #endregion #region PostRenderFilterRow /// /// Occurs after a Filter Row has been rendered /// [Description("Occurs after a Filter Row has been rendered.")] public event EventHandler PostRenderFilterRow; #endregion #region PreRenderFilterRow /// /// Occurs when a Filter Row is about to be rendered /// [Description("Occurs when a Filter Row is about to be rendered.")] public event EventHandler PreRenderFilterRow; #endregion #region PostRenderGroupBox /// /// Occurs after a GroupBox has been rendered /// [Description("Occurs after a GroupBox has been rendered.")] public event EventHandler PostRenderGroupBox; #endregion #region PreRenderGroupBox /// /// Occurs when a GroupBox is about to be rendered /// [Description("Occurs when a GroupBox is about to be rendered.")] public event EventHandler PreRenderGroupBox; #endregion #region PostRenderGroupBoxConnector /// /// Occurs after a GroupBox Connector been rendered /// [Description("Occurs after a GroupBox Connectorhas been rendered.")] public event EventHandler PostRenderGroupBoxConnector; #endregion #region PreRenderGroupBoxConnector /// /// Occurs when a GroupBox Connector is about to be rendered /// [Description("Occurs when a GroupBox Connector is about to be rendered.")] public event EventHandler PreRenderGroupBoxConnector; #endregion #endregion #region Row events #region LoadVirtualRow /// /// Occurs when a virtual row needs loaded /// [Description("Occurs when a virtual row needs loaded.")] public event EventHandler LoadVirtualRow; #endregion #region RowActivated /// /// Occurs when a row has been made the Active Row /// [Description("Occurs when a row has been made the Active Row.")] public event EventHandler RowActivated; #endregion #region RowActivating /// /// Occurs when a row is about to be made the Active Row /// [Description("Occurs when a row is about to be made the Active Row.")] public event EventHandler RowActivating; #endregion #region RowAdded /// /// Occurs when a row has been added /// [Description("Occurs when a row has been added.")] public event EventHandler RowAdded; #endregion #region RowAdding /// /// Occurs when a row is about to be added /// [Description("Occurs when a row is about to be added.")] public event EventHandler RowAdding; #endregion #region RowDeleted /// /// Occurs when a row has been deleted /// [Description("Occurs when a row has been deleted.")] public event EventHandler RowDeleted; #endregion #region RowDeleting /// /// Occurs when a row is about to be deleted /// [Description("Occurs when a row is about to be deleted.")] public event EventHandler RowDeleting; #endregion #region GetDetailRowHeight /// /// Occurs when a row's 'detail' height is needed /// [Description("Occurs when a row's 'detail' height is needed.")] public event EventHandler GetDetailRowHeight; #endregion #region RowClick /// /// Occurs when a row has been clicked /// [Description("Occurs when a row has been clicked.")] public event EventHandler RowClick; #endregion #region RowDoubleClick /// /// Occurs when a row has been double clicked /// [Description("Occurs when a row has been double clicked.")] public event EventHandler RowDoubleClick; #endregion #region RowHeaderClick /// /// Occurs when a row header has been clicked /// [Description("Occurs when a row header has been clicked.")] public event EventHandler RowHeaderClick; #endregion #region RowHeaderDoubleClick /// /// Occurs when a row header has been double clicked /// [Description("Occurs when a row header has been double clicked.")] public event EventHandler RowHeaderDoubleClick; #endregion #region RowHeaderResized /// /// Occurs when the grid Row Header has been resized /// [Description("Occurs when the grid Row Header has been resized.")] public event EventHandler RowHeaderResized; #endregion #region RowInfoClick /// /// Occurs when a row InfoImage has been clicked /// [Description("Occurs when a row InfoImage has been clicked.")] public event EventHandler RowInfoClick; #endregion #region RowInfoDoubleClick /// /// Occurs when a row InfoImage has been double clicked /// [Description("Occurs when a row InfoImage has been double clicked.")] public event EventHandler RowInfoDoubleClick; #endregion #region RowInfoEnter /// /// Occurs when a row InfoImage has been entered via the mouse /// [Description("Occurs when a row InfoImage has been entered via the mouse.")] public event EventHandler RowInfoEnter; #endregion #region RowInfoLeave /// /// Occurs when a row InfoImage has been exited via the mouse /// [Description("Occurs when a row InfoImage has been exited via the mouse.")] public event EventHandler RowInfoLeave; #endregion #region RowLoaded /// /// Occurs when a 'bound' data row has been loaded /// [Description("Occurs when a 'bound' data row has been loaded.")] public event EventHandler RowLoaded; #endregion #region RowMarkedDirty /// /// Occurs when a cell editor marks a row as Dirty /// [Description("Occurs when a cell editor marks a row as Dirty.")] public event EventHandler RowMarkedDirty; #endregion #region RowMouseDown /// /// Occurs when a mouse button is pressed /// while the mouse pointer is within a Row /// [Description("Occurs when a mouse button is pressed while the mouse pointer is within a Row.")] public event EventHandler RowMouseDown; #endregion #region RowMouseEnter /// /// Occurs when the mouse pointer enters a Row /// [Description("Occurs when the mouse pointer enters a Row.")] public event EventHandler RowMouseEnter; #endregion #region RowMouseLeave /// /// Occurs when the mouse pointer leaves a Row /// [Description("Occurs when the mouse pointer leaves a Row.")] public event EventHandler RowMouseLeave; #endregion #region RowMouseMove /// /// Occurs when the mouse pointer moves within a Row /// [Description("Occurs when the mouse pointer leaves a Row.")] public event EventHandler RowMouseMove; #endregion #region RowMouseUp /// /// Occurs when a mouse button is released /// while the mouse pointer is within a Row /// [Description("Occurs when a mouse button is released while the mouse pointer is within a Row.")] public event EventHandler RowMouseUp; #endregion #region RowMoved /// /// Occurs when a row has been moved or reordered /// [Description("Occurs when a row has been moved or reordered.")] public event EventHandler RowMoved; #endregion #region RowMoving /// /// Occurs when a row is about to be moved or reordered /// [Description("Occurs when a row is about to be moved or reordered.")] public event EventHandler RowMoving; #endregion #region RowResized /// /// Occurs when a row has been resized /// [Description("Occurs when a row has been resized.")] public event EventHandler RowResized; #endregion #region RowRestored /// /// Occurs when a deleted row has been restored (undeleted) /// [Description("Occurs when a deleted row has been restored (undeleted).")] public event EventHandler RowRestored; #endregion #region RowRestoring /// /// Occurs when a deleted row is about to be restored (undeleted) /// [Description("Occurs when a deleted row is about to be restored (undeleted).")] public event EventHandler RowRestoring; #endregion #region RowSetDefaultValues /// /// Occurs when a user enters the Insertion Row /// or presses the 'insert' key to add a new row, /// permitting default values to be set for each cell /// [Description("Occurs when a user enters the Insertion Row or presses the 'insert' key to add a new row, permitting default values to be set for each cell.")] public event EventHandler RowSetDefaultValues; #endregion #region RowsGrouped /// /// Occurs when the grid Rows have been grouped (or ungrouped) /// [Description("Occurs when the grids Row have been grouped (or ungrouped).")] public event EventHandler RowsGrouped; #endregion #region RowsGrouping /// /// Occurs when the grid Rows are about to be grouped (or ungrouped) /// [Description("Occurs when the Rows are about to be grouped (or ungrouped).")] public event EventHandler RowsGrouping; #endregion #region RowsPurged /// /// Occurs when grid rows have been purged /// [Description("Occurs when grid rows have been purged.")] public event EventHandler RowsPurged; #endregion #region RowsPurging /// /// Occurs when grid rows are about to be purged /// [Description("Occurs when grid rows are about to be purged.")] public event EventHandler RowsPurging; #endregion #region RowsSorting /// /// Occurs when the grid Rows are about to be sorted /// [Description("Occurs when the grid Rows are about to be sorted.")] public event EventHandler RowsSorting; #endregion #region RowsSorted /// /// Occurs when the grid Rows have been sorted /// [Description("Occurs when the grid Rows have been sorted.")] public event EventHandler RowsSorted; #endregion #region RowValidating /// /// Occurs when a row needs validating /// [Description("Occurs when a row needs validating.")] public event EventHandler RowValidating; #endregion #region RowValidated /// /// Occurs after a row has been validated /// [Description("Occurs after a row has been validated.")] public event EventHandler RowValidated; #endregion #region StoreVirtualRow /// /// Occurs when a virtual row has changed and /// it's contents need stored /// [Description("Occurs when a virtual row has changed and it's contents need stored.")] public event EventHandler StoreVirtualRow; #endregion #region VirtualRowLoaded /// /// Occurs when after a virtual row has been loaded /// [Description("Occurs after a virtual row has been loaded.")] public event EventHandler VirtualRowLoaded; #endregion #endregion #region Scroll /// /// Occurs when the Horizontal or Vertical scrollbar has been scrolled /// [Description("Occurs when the Horizontal or Vertical scrollbar has been scrolled.")] public event EventHandler Scroll; #endregion #region ScrollMin /// /// Occurs when the Horizontal or Vertical /// scrollbar has been scrolled to the Minimum and released /// [Description("Occurs when the Horizontal or Vertical scrollbar has been scrolled to the Minimum and released.")] public event EventHandler ScrollMin; #endregion #region ScrollMax /// /// Occurs when the Horizontal or Vertical scrollbar has been scrolled to the Maximum and released /// [Description("Occurs when the Horizontal or Vertical scrollbar has been scrolled to the Maximum and released.")] public event EventHandler ScrollMax; #endregion #region SelectionChanged /// /// Occurs when the selected items in the grid has changed /// [Description("Occurs when the selected items in the grid has changed.")] public event EventHandler SelectionChanged; #endregion #region SelectionChanging /// /// Occurs when the selected items in the grid is about to change /// [Description("Occurs when the selected items in the grid is about to change.")] public event EventHandler SelectionChanging; #endregion #region SortChanged /// /// Occurs when the grid sort order has changed /// [Description("Occurs when the grid sort order has changed.")] public event EventHandler SortChanged; #endregion #region StyleManagerChanged /// /// Occurs when the StyleManager style has changed /// [Description("Occurs when the StyleManager style has changed.")] public event EventHandler StyleManagerChanged; #endregion #region TextRowClick /// /// Occurs when a GridTextRow (Title, footer, ...) has been clicked /// [Description("Occurs when a GridTextRow (Title, footer, ...) has been clicked.")] public event EventHandler TextRowClick; #endregion #region TextRowHeaderClick /// /// Occurs when a GridTextRow (Title, footer, ...) Row Header has been clicked /// [Description("Occurs when a GridTextRow (Title, footer, ...) Row Header has been clicked.")] public event EventHandler TextRowHeaderClick; #endregion #region TextRowMarkupLinkClick /// /// Occurs when a GridTextRow (Title, footer, ...) has a MarkupLink that has been clicked /// [Description("Occurs when a GridTextRow (Title, footer, ...) has a MarkupLink that has been clicked.")] public event EventHandler TextRowMarkupLinkClick; #endregion #region UpdateCellDisplayRanges /// /// Occurs after the grid has created its CellDisplayRanges list /// [Description("Occurs after the grid has created its CellDisplayRanges list.")] public event EventHandler UpdateCellDisplayRanges; #endregion #endregion #region Constants const int WmSetFocus = 0x7; const int WmKeyDown = 0x100; const int WmKeyUp = 0x101; const int WmMouseMove = 0x200; const int WmMouseDown = 0x201; const int WmMouseLeave = 0x2a3; const int WmMouseWheel = 0x20a; const int InputKeyboard = 1; #endregion #region DllImports #region SendInput #region SendInput32 [StructLayout(LayoutKind.Explicit)] struct Input32 { [FieldOffset(0)] public int type; [FieldOffset(4)] public MouseInput mi; [FieldOffset(4)] public KeyBoardInput ki; [FieldOffset(4)] public HardwareInput hi; } [StructLayout(LayoutKind.Sequential)] struct KeyBoardInput { private ushort vk; private ushort scan; private uint flags; private uint time; private IntPtr extraInfo; public KeyBoardInput(ushort key) { vk = key; scan = 0; time = 0; extraInfo = IntPtr.Zero; flags = 0; } } [StructLayout(LayoutKind.Sequential)] struct MouseInput { public int dx; public int dy; public uint mouseData; public uint dwFlags; public uint time; public IntPtr dwExtraInfo; } [StructLayout(LayoutKind.Sequential)] struct HardwareInput { public uint uMsg; public ushort wParamL; public ushort wParamH; } [DllImport("user32.dll", SetLastError = true)] private static extern uint SendInput(uint nInputs, Input32[] pInputs, int cbSize); #endregion #region SendInput64 [StructLayout(LayoutKind.Explicit, Pack = 1)] internal struct Input64 { [FieldOffset(0)] public uint type; [FieldOffset(8)] public KeyboardInput64 ki; } [StructLayout(LayoutKind.Explicit, Pack = 1)] internal struct KeyboardInput64 { [FieldOffset(0)] public ushort vk; [FieldOffset(2)] public ushort scan; [FieldOffset(4)] public uint flags; [FieldOffset(12)] public uint time; [FieldOffset(20)] public uint extraInfo1; [FieldOffset(28)] public uint extraInfo2; public KeyboardInput64(ushort key) { vk = key; scan = 0; time = 0; extraInfo1 = 0; extraInfo2 = 0; flags = 0; } } [DllImport("user32.dll", SetLastError = true)] private static extern uint SendInput(uint nInputs, Input64[] pInputs, int cbSize); #endregion #endregion #region ScrollWindowEx #region RECT definition [StructLayout(LayoutKind.Sequential)] internal struct RECT { public int Left, Top, Right, Bottom; public RECT(int left, int top, int right, int bottom) { Left = left; Top = top; Right = right; Bottom = bottom; } public RECT(System.Drawing.Rectangle r) : this(r.Left, r.Top, r.Right, r.Bottom) { } public int X { get { return Left; } set { Right -= (Left - value); Left = value; } } public int Y { get { return Top; } set { Bottom -= (Top - value); Top = value; } } public int Height { get { return Bottom - Top; } set { Bottom = value + Top; } } public int Width { get { return Right - Left; } set { Right = value + Left; } } public Point Location { get { return new Point(Left, Top); } set { X = value.X; Y = value.Y; } } public Size Size { get { return new Size(Width, Height); } set { Width = value.Width; Height = value.Height; } } public static implicit operator Rectangle(RECT r) { return new Rectangle(r.Left, r.Top, r.Width, r.Height); } public static implicit operator RECT(Rectangle r) { return new RECT(r); } public static bool operator == (RECT r1, RECT r2) { return r1.Equals(r2); } public static bool operator != (RECT r1, RECT r2) { return !r1.Equals(r2); } public bool Equals(RECT r) { return r.Left == Left && r.Top == Top && r.Right == Right && r.Bottom == Bottom; } public override bool Equals(object obj) { if (obj is RECT) return Equals((RECT)obj); else if (obj is Rectangle) return Equals(new RECT((Rectangle)obj)); return false; } public override int GetHashCode() { return ((Rectangle)this).GetHashCode(); } public override string ToString() { return string.Format(System.Globalization.CultureInfo.CurrentCulture, "{{Left={0},Top={1},Right={2},Bottom={3}}}", Left, Top, Right, Bottom); } } #endregion const uint SW_ERASE = (1 << 1); const uint SW_INVALIDATE = (1 << 2); [DllImport("user32.dll")] private static extern int ScrollWindowEx(IntPtr hWnd, int dx, int dy, ref RECT scrollRect, ref RECT clipRect, IntPtr hrgn, ref RECT updateRect, uint flags); #endregion #region GetKeyState #region Keyboard internal abstract class Keyboard { [Flags] private enum KeyStates { None = 0, Down = 1, Toggled = 2 } [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] private static extern short GetKeyState(int keyCode); private static KeyStates GetKeyState(Keys key) { KeyStates state = KeyStates.None; short retVal = GetKeyState((int)key); // If the high-order bit is 1, the key is down if ((retVal & 0x8000) == 0x8000) state |= KeyStates.Down; // If the low-order bit is 1, the key is toggled if ((retVal & 1) == 1) state |= KeyStates.Toggled; return state; } public static bool IsKeyDown(Keys key) { return KeyStates.Down == (GetKeyState(key) & KeyStates.Down); } public static bool IsKeyToggled(Keys key) { return KeyStates.Toggled == (GetKeyState(key) & KeyStates.Toggled); } } #endregion #endregion #endregion #region Private variables private readonly GridPanel _PrimaryGrid; private HScrollBarAdv _HScrollBar; private VScrollBarAdv _VScrollBar; private int _HScrollOffset; private int _VScrollOffset; private bool _HScrollBarEnabled; private bool _VScrollBarEnabled; private bool _ScrollBarScrolling; private Rectangle _ViewRect = Rectangle.Empty; private Rectangle _CViewRect = Rectangle.Empty; private GridElement _CapturedItem; private Timer _AutoScrollTimer; private AutoScrollEnable _AutoScrollEnable; private Rectangle _ScrollRect; private bool _PostMouseMove; private ushort _BoundsUpdateCount; private ushort _BeginUpdateCount; private Cursor _GridCursor = Cursors.Default; private GridCell _EditorCell; private GridCell _NonModalEditorCell; private IGridCellEditControl _ActiveEditor; private IGridCellEditControl _ActiveNonModalEditor; private FilterPanel _ActiveFilterPanel; private GridPanel _ActiveGrid; private GridContainer _ActiveRow; private GridCell _ActiveCell; private GridElement _LastProcessedItem; private int _LastCellIndex = -1; private GridCell _LastActiveCell; private string _ToolTipText; private System.Windows.Forms.ToolTip _ToolTip; private StyleType _SizingStyle = StyleType.NotSet; private DefaultVisualStyles _DefaultVisualStyles; private DefaultVisualStyles _BaseVisualStyles; private ushort _StyleUpdateCount = 1; private ushort _StyleMouseOverUpdateCount = 1; private ushort _StyleSelectedUpdateCount = 1; private ushort _StyleSelectedMouseOverUpdateCount = 1; private ushort _ArrangeLayoutCount = 1; private ushort _DisplayedMergeLayoutCount = 1; private bool _NeedToUpdateIndicees; private ushort _IndiceesUpdateCount; private GridElement _DesignerElement; private Keys _LastKeyDown; private Keys _LastModifierKeys; private TabSelection _TabSelection = TabSelection.Cell; private bool _KeyPressSent; private bool _IsInputKey; private string _FilterShowAllString = "Show all"; private string _FilterShowNullString = "Show null"; private string _FilterShowNotNullString = "Show not null"; private string _FilterCustomString = "Custom"; private string _FilterApplyString = "Apply"; private string _FilterOkString = "OK"; private string _FilterCancelString = "Cancel"; private string _FilterCloseString = "Close"; private string _GroupByWaterMarkText = "Drag a column header here to group by that column"; private bool _FilterColorizeCustomExpr = true; private bool _ShowCustomFilterHelp = true; private bool _FilterUseExtendedCustomDialog; private int _FilterMaxDropDownHeight = 300; private ExpressionColors _FilterExprColors = new ExpressionColors(); private PopupControl _PopupControl; private bool _LocalizedStringsLoaded; private ExpandButtonType _ExpandButtonType = ExpandButtonType.NotSet; private Cursor _DefaultCursor = Cursors.Default; private bool _SetGridCursor; private bool _HScrollBarVisible = true; private bool _VScrollBarVisible = true; private bool _InArrangeGrid; private bool _CanScrollEx; private bool _EnableFastScrolling = true; private int _MaxToolTipLength = 2000; #endregion /// /// Initializes a new instance of the SuperGridControl class. /// public SuperGridControl() { SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque | ControlStyles.ResizeRedraw | ControlStyles.OptimizedDoubleBuffer | ControlStyles.SupportsTransparentBackColor, true); _PrimaryGrid = new GridPanel(); _PrimaryGrid.SuperGrid = this; _PrimaryGrid.ContainerBounds = ClientRectangle; SetupScrollBars(); if (DesignMode == false) { Application.AddMessageFilter(this); base.PreviewKeyDown += SuperGridControlPreviewKeyDown; } UpdateGridStyle(); StyleManager.Register(this); if (BarFunctions.IsWindows7 && Touch.TouchHandler.IsTouchEnabled) { _TouchHandler = new Touch.TouchHandler(this, Touch.eTouchHandlerType.Gesture); _TouchHandler.PanBegin += TouchHandlerPanBegin; _TouchHandler.Pan += TouchHandlerPan; _TouchHandler.PanEnd += TouchHandlerPanEnd; } } protected override void ScaleControl(SizeF factor, BoundsSpecified specified) { Dpi.SetScaling(factor); base.ScaleControl(factor, specified); SetupScrollBars(); } #region OnEnabledChanged /// /// OnEnabledChanged /// /// protected override void OnEnabledChanged(EventArgs e) { base.OnEnabledChanged(e); Refresh(); } #endregion #region StyleManagerStyleChanged /// /// Called by StyleManager to notify control that style on /// manager has changed and that control should refresh its /// appearance if its style is controlled by StyleManager. /// /// New active style. [EditorBrowsable(EditorBrowsableState.Never)] public void StyleManagerStyleChanged(eDotNetBarStyle newStyle) { UpdateGridStyle(); } private void UpdateGridStyle() { SuperGridStyle style = SuperGridStyle.Office2010Blue; switch (StyleManager.Style) { case eStyle.Office2007VistaGlass: case eStyle.VisualStudio2010Blue: case eStyle.Windows7Blue: case eStyle.Office2007Blue: case eStyle.Office2010Blue: style = SuperGridStyle.Office2010Blue; break; case eStyle.Office2007Black: case eStyle.Office2010Black: style = SuperGridStyle.Office2010Black; break; case eStyle.Office2007Silver: case eStyle.Office2010Silver: style = SuperGridStyle.Office2010Silver; break; case eStyle.Metro: case eStyle.VisualStudio2012Dark: case eStyle.VisualStudio2012Light: case eStyle.Office2016: case eStyle.OfficeMobile2014: style = SuperGridStyle.Metro; break; } _BaseVisualStyles = VisualStylesTable.GetStyle(style); if (IsHandleCreated == true) { UpdateStyleCount(); Invalidate(true); if (StyleManagerChanged != null) StyleManagerChanged(this, new EventArgs()); } } #endregion #region Public properties #region ActiveCell /// /// Gets the current active cell /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridCell ActiveCell { get { return (_ActiveCell); } internal set { if (_ActiveCell != value) { _LastActiveCell = _ActiveCell; if (_ActiveCell != null) _ActiveCell.EditorDirty = false; _ActiveCell = value; OnActiveCellChanged(_LastActiveCell, _ActiveCell); } } } private void OnActiveCellChanged( GridCell oldValue, GridCell newValue) { GridPanel panel = (oldValue != null) ? oldValue.GridPanel : (newValue != null) ? newValue.GridPanel : null; DoCellActivatedEvent(panel, oldValue, newValue); } #endregion #region ActiveEditor /// /// Gets the currently active cell editor, or null if /// no edit is in progress /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public IGridCellEditControl ActiveEditor { get { return (_ActiveEditor); } internal set {_ActiveEditor = value; } } #endregion #region ActiveElement /// /// Gets the current active grid element (Row/Cell), or null if /// there is no current active element /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridElement ActiveElement { get { return (_LastProcessedItem); } internal set { if (_LastProcessedItem != value) { if (_LastProcessedItem != null) _LastProcessedItem.InvalidateRender(); _LastProcessedItem = value; if (_LastProcessedItem != null) _LastProcessedItem.InvalidateRender(); } } } #endregion #region ActiveFilterPanel /// /// Gets the currently active FilterPanel /// editor, or null if no edit is in progress /// public FilterPanel ActiveFilterPanel { get { return (_ActiveFilterPanel); } internal set { _ActiveFilterPanel = value; } } #endregion #region ActiveGrid /// /// Gets the current active grid /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridPanel ActiveGrid { get { return (_ActiveGrid); } internal set { if (_ActiveGrid != value) { if (_ActiveGrid != null) { if (_ActiveGrid.ActiveRow is GridRow) ((GridRow)_ActiveGrid.ActiveRow).EditorDirty = false; } GridPanel oldValue = _ActiveGrid; _ActiveGrid = value; OnActiveGridChanged(oldValue); ActiveRow = (_ActiveGrid != null) ? _ActiveGrid.ActiveRow : null; } } } private void OnActiveGridChanged(GridPanel oldPanel) { DoActiveGridChangedEvent(oldPanel); } #endregion #region ActiveRow /// /// Gets the current active row, or null if no row /// is defined or active /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridContainer ActiveRow { get { if (_ActiveGrid != null) return (_ActiveGrid.ActiveRow); return (null); } internal set { if (_ActiveRow != value) { if (_ActiveRow != null) _ActiveRow.FlushRow(); GridContainer oldValue = _ActiveRow; _ActiveRow = value; if (_ActiveRow != null) ActiveGrid = _ActiveRow.GridPanel; if (_ActiveGrid != null) _ActiveGrid.ActiveRow = value; OnActiveRowChanged(oldValue, _ActiveRow); } } } private void OnActiveRowChanged( GridContainer oldValue, GridContainer newValue) { GridPanel panel = (oldValue != null) ? oldValue.GridPanel : (newValue != null) ? newValue.GridPanel : null; DoRowActivatedEvent(panel, oldValue, newValue); } #endregion #region BaseVisualStyles /// /// BaseVisualStyles - the SuperGrid starting base styles /// [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public DefaultVisualStyles BaseVisualStyles { get { return (_BaseVisualStyles); } internal set { _BaseVisualStyles = value; } } #endregion #region DefaultVisualStyles /// /// Gets or sets the Default Visual Styles for each grid element /// [Browsable(true), Category("Appearance"), DefaultValue(null)] [Description("Indicates the Default Visual Styles for each grid elements.")] [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public DefaultVisualStyles DefaultVisualStyles { get { if (_DefaultVisualStyles == null) { _DefaultVisualStyles = new DefaultVisualStyles(); _DefaultVisualStyles.PropertyChanged += DefaultVisualStylesPropertyChanged; } return (_DefaultVisualStyles); } set { if (_DefaultVisualStyles != value) { if (_DefaultVisualStyles != null) _DefaultVisualStyles.PropertyChanged -= DefaultVisualStylesPropertyChanged; _DefaultVisualStyles = value; if (_DefaultVisualStyles != null) _DefaultVisualStyles.PropertyChanged += DefaultVisualStylesPropertyChanged; } } } #region DefaultVisualStylesPropertyChanged private void DefaultVisualStylesPropertyChanged(object sender, PropertyChangedEventArgs e) { UpdateStyleCount(); VisualChangeType changeType = ((VisualPropertyChangedEventArgs)e).ChangeType; switch (changeType) { case VisualChangeType.Layout: _PrimaryGrid.NeedsMeasured = true; _PrimaryGrid.InvalidateMerge(); break; case VisualChangeType.Render: Invalidate(); break; } } #endregion #endregion #region DesignerElement /// /// For internal use only /// [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridElement DesignerElement { get { return (_DesignerElement); } set { _DesignerElement = value; if (value != null) { if (value.NeedsMeasured == true) ArrangeGrid(); value.EnsureVisible(true); } Refresh(); } } #endregion #region EditorActive /// /// Gets whether a cell editor is currently active /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool EditorActive { get { return (_ActiveEditor != null); } } #endregion #region EditorCell /// /// Gets the currently active editor cell, or null /// if no cell is currently being edited /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridCell EditorCell { get { return (_EditorCell); } internal set { _EditorCell = value; } } #endregion #region EditorColumn /// /// Gets the column containing the current edit /// cell, or null if no edit is in progress /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridColumn EditorColumn { get { if (_EditorCell != null) return (_EditorCell.GridColumn); return (null); } } #endregion #region EditorGrid /// /// Gets the grid containing the cell currently /// being edited, or null if no edit is in progress /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridPanel EditorGrid { get { if (_EditorCell != null) return (_EditorCell.GridPanel); return (null); } } #endregion #region EditorRow /// /// Gets the row containing the cell currently /// being edited, or null if no edit is in progress /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridRow EditorRow { get { if (_EditorCell != null) return (_EditorCell.GridRow); return (null); } } #endregion #region EnableFastScrolling /// /// Gets or sets whether Fast Scrolling is enabled. Default is true. /// [DefaultValue(true), Category("Behavior")] [Description("Indicates whether Fast Scrolling is enabled.")] public bool EnableFastScrolling { get { return (_EnableFastScrolling); } set { if (_EnableFastScrolling != value) { _EnableFastScrolling = value; OnPropertyChanged("EnableFastScrolling"); } } } #endregion #region ExpandButtonType /// /// Gets or sets the ExpandButton Type /// [DefaultValue(ExpandButtonType.NotSet), Category("Appearance")] [Description("Indicates the ExpandButton Type.")] public ExpandButtonType ExpandButtonType { get { return (_ExpandButtonType); } set { if (_ExpandButtonType != value) { _ExpandButtonType = value; UpdateStyleCount(); OnPropertyChanged("ExpandButtonType"); } } } #endregion #region FilterColorizeCustomExpr /// /// Gets or sets whether the Custom Expression /// dialog colorizes the output expression /// [DefaultValue(true), Category("Filtering")] [Description("Indicates whether the Custom Expression dialog colorizes the output expression.")] public bool FilterColorizeCustomExpr { get { return (_FilterColorizeCustomExpr); } set { if (_FilterColorizeCustomExpr != value) { _FilterColorizeCustomExpr = value; OnPropertyChanged("FilterColorizeCustomExpr"); } } } #endregion #region FilterExprColors /// /// Gets or sets the expression colors used in the Custom Expression dialog /// [Category("Filtering")] [Description("Indicates the expression colors used in the Custom Expression dialog.")] [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public ExpressionColors FilterExprColors { get { return (_FilterExprColors); } set { if (_FilterExprColors != value) { _FilterExprColors = value; OnPropertyChanged("FilterExprColors"); } } } #endregion #region FilterMaxDropDownHeight /// /// Gets or sets the max height of /// the filter panel and filter popup drop-down /// [DefaultValue(300), Category("Filtering")] [Description("Indicates the max height of the filter panel and filter popup dropdown.")] public int FilterMaxDropDownHeight { get { return (_FilterMaxDropDownHeight); } set { if (_FilterMaxDropDownHeight != value) { _FilterMaxDropDownHeight = value; OnPropertyChanged("FilterMaxDropDownHeight"); } } } #endregion #region FilterUseExtendedCustomDialog /// /// Gets or sets whether the Extended Custom Expression dialog /// is used (permits user filter definition persistence) /// [DefaultValue(false), Category("Filtering")] [Description("Indicates whether the Extended Custom Expression dialog is used (permits user filter definition persistence).")] public bool FilterUseExtendedCustomDialog { get { return (_FilterUseExtendedCustomDialog); } set { if (_FilterUseExtendedCustomDialog != value) { _FilterUseExtendedCustomDialog = value; OnPropertyChanged("FilterUseExtendedCustomDialog"); } } } #endregion #region GridCursor /// /// Gets or sets the logical grid cursor /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Cursor GridCursor { get { return (_GridCursor); } set { if (value == null || value == Cursors.Default) _GridCursor = _DefaultCursor; else _GridCursor = value; } } #endregion #region HScrollBar /// /// Gets a reference to the grid’s horizontal scrollbar /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public HScrollBarAdv HScrollBar { get { return (_HScrollBar); } } #endregion #region HScrollMaximum /// /// Gets the horizontal scrollbar maximum value /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int HScrollMaximum { get { return (_HScrollBar.Maximum); } } #endregion #region HScrollOffset /// /// Gets or sets the horizontal scrollbar offset /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int HScrollOffset { get { return (_HScrollOffset); } set { SetHScrollValue(value); } } #endregion #region HScrollBarVisible /// /// Gets or sets whether Horizontal Scroll-bar is shown if needed because content of the control exceeds available width. Default value is true. /// [DefaultValue(true), Category("Appearance"), Description("Indicates whether Vertical Scroll-bar is shown if needed because content of the control exceeds available height.")] public bool HScrollBarVisible { get { return _HScrollBarVisible; } set { _HScrollBarVisible = value; if (_HScrollBar != null && _HScrollBar.Visible != _HScrollBarVisible) { _HScrollBar.Visible = _HScrollBarVisible; PrimaryGrid.InvalidateLayout(); Invalidate(); } } } #endregion #region IsUpdateSuspended /// /// Gets whether grid updating / rendering is suspended /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool IsUpdateSuspended { get { return (_BeginUpdateCount > 0); } } #endregion #region NonModalEditorCell /// /// Gets the current NonModal cell being edited, or /// null if no NonModel cell edit is in progress /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public GridCell NonModalEditorCell { get { return (_NonModalEditorCell); } internal set { _NonModalEditorCell = value; } } #endregion #region PopupControl /// /// Gets the current active PopupControl /// (Returns null if none is currently active). /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public PopupControl PopupControl { get { return (_PopupControl); } internal set { _PopupControl = value; } } #endregion #region PrimaryGrid /// /// Gets the primary, root grid. /// [Browsable(true)] [Description("Indicates the primary, root grid")] [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public GridPanel PrimaryGrid { get { return (_PrimaryGrid); } } #endregion #region ShowCustomFilterHelp /// /// Gets or sets whether the Custom /// Expression dialog shows user help /// [DefaultValue(true), Category("Filtering")] [Description("Indicates whether the Custom Expression dialog shows user help.")] public bool ShowCustomFilterHelp { get { return (_ShowCustomFilterHelp); } set { if (_ShowCustomFilterHelp != value) { _ShowCustomFilterHelp = value; OnPropertyChanged("ShowCustomFilterHelp"); } } } #endregion #region SizingStyle /// /// Gets or sets which StyleType (Default, MouseOver, etc) to use for element sizing /// [Browsable(true), DefaultValue(StyleType.NotSet), Category("Appearance")] [Description("Indicates which StyleType (Default, MouseOver, etc) to use for element sizing")] public StyleType SizingStyle { get { return (_SizingStyle); } set { if (_SizingStyle != value) { _SizingStyle = value; OnSizingStyleChanged(); } } } private void OnSizingStyleChanged() { _PrimaryGrid.InvalidateLayout(); OnPropertyChanged("SizingStyle"); } #endregion #region TabSelection /// /// Gets or sets how the TAB key moves the focus when pressed. /// [Browsable(true), DefaultValue(TabSelection.Cell), Category("Behavior")] [Description("Indicates how the TAB key moves the focus when pressed.")] public TabSelection TabSelection { get { return (_TabSelection); } set { if (_TabSelection != value) { _TabSelection = value; OnPropertyChanged("TabSelection"); } } } #endregion #region MaxToolTipLength /// /// Gets or sets the maximum tooltip length /// [Browsable(true), DefaultValue(2000), Category("Behavior")] [Description("Indicates the maximum tooltip length.")] public int MaxToolTipLength { get { return (_MaxToolTipLength); } set { _MaxToolTipLength = value; } } #endregion #region VScrollBar /// /// Gets a reference to the grid’s vertical scrollbar /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public VScrollBarAdv VScrollBar { get { return (_VScrollBar); } } #endregion #region VScrollMaximum /// /// Gets the vertical scrollbar maximum value /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int VScrollMaximum { get { return (_VScrollBar.Maximum); } } #endregion #region VScrollOffset /// /// Gets the vertical scrollbar offset /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int VScrollOffset { get { return (_VScrollOffset); } set { SetVScrollValue(value); } } #endregion #region VScrollBarVisible /// /// Gets or sets whether Vertical Scroll-bar is shown if needed because content of the control exceeds available height. Default value is true. /// [DefaultValue(true), Category("Appearance"), Description("Indicates whether Vertical Scroll-bar is shown if needed because content of the control exceeds available height.")] public bool VScrollBarVisible { get { return _VScrollBarVisible; } set { _VScrollBarVisible = value; if (_VScrollBar != null && _VScrollBar.Visible != _VScrollBarVisible) { _VScrollBar.Visible = _VScrollBarVisible; PrimaryGrid.InvalidateLayout(); Invalidate(); } } } #endregion #endregion #region Internal properties #region ActiveNonModalEditor /// /// ActiveNonModalEditor /// internal IGridCellEditControl ActiveNonModalEditor { get { return (_ActiveNonModalEditor); } set { _ActiveNonModalEditor = value; } } #endregion #region ArrangeLayoutCount internal ushort ArrangeLayoutCount { get { return (_ArrangeLayoutCount); } set { _ArrangeLayoutCount = value; } } #endregion #region BoundsUpdateCount internal ushort BoundsUpdateCount { get {return (_BoundsUpdateCount); } set { _BoundsUpdateCount = value; } } #endregion #region CanScrollEx internal bool CanScrollEx { get { return (_CanScrollEx); } set { _CanScrollEx = value; } } #endregion #region CapturedItem internal GridElement CapturedItem { get { if (Capture == false) _CapturedItem = null; return (_CapturedItem); } set { Capture = ((_CapturedItem = value) != null); } } #endregion #region CViewRect internal Rectangle CViewRect { get { if (_CViewRect.IsEmpty == true) { _CViewRect = ClientRectangle; int n =_PrimaryGrid.FixedHeaderHeight; _CViewRect.Y += n; _CViewRect.Height -= n; if (_PrimaryGrid.Footer != null && _PrimaryGrid.Footer.Visible == true) _CViewRect.Height -= _PrimaryGrid.Footer.Size.Height; if (_VScrollBar != null && _VScrollBar.Visible == true) _CViewRect.Width -= VScrollBarWidth; if (_HScrollBar != null && _HScrollBar.Visible == true) _CViewRect.Height -= HScrollBarHeight; } return (_CViewRect); } } #endregion #region DisplayedMergeLayoutCount internal ushort DisplayedMergeLayoutCount { get { return (_DisplayedMergeLayoutCount); } set { _DisplayedMergeLayoutCount = value; } } #endregion #region FilterApplyString internal string FilterApplyString { get { return (LocalizedString(ref _FilterApplyString)); } } #endregion #region FilterCancelString internal string FilterCancelString { get { return (LocalizedString(ref _FilterCancelString)); } } #endregion #region FilterCloseString internal string FilterCloseString { get { return (LocalizedString(ref _FilterCloseString)); } } #endregion #region FilterCustomString internal string FilterCustomString { get { return (LocalizedString(ref _FilterCustomString)); } } #endregion #region FilterOkString internal string FilterOkString { get { return (LocalizedString(ref _FilterOkString)); } } #endregion #region FilterShowAllString internal string FilterShowAllString { get { return (LocalizedString(ref _FilterShowAllString)); } } #endregion #region FilterShowNotNullString internal string FilterShowNotNullString { get { return (LocalizedString(ref _FilterShowNotNullString)); } } #endregion #region FilterShowNullString internal string FilterShowNullString { get { return (LocalizedString(ref _FilterShowNullString)); } } #endregion #region GroupByWaterMarkText internal string GroupByWaterMarkText { get { return (LocalizedString(ref _GroupByWaterMarkText)); } } #endregion #region HasDataErrorHandler internal bool HasDataErrorHandler { get { return (DataError != null); } } #endregion #region HasItemDragHandler internal bool HasItemDragHandler { get { return (ItemDrag != null); } } #endregion #region HScrollBarHeight internal int HScrollBarHeight { get { if (_HScrollBar != null) return (_HScrollBar.Height); return (SystemInformation.HorizontalScrollBarHeight); } } #endregion #region SViewRect internal Rectangle SViewRect { get { Rectangle r = ViewRect; if (PrimaryGrid.ShowRowHeaders == true) { r.X += _PrimaryGrid.RowHeaderWidthEx; r.Width -= _PrimaryGrid.RowHeaderWidthEx; if (r.Width < 0) r.Width = 0; } return (r); } } #endregion #region IndiceesUpdateCount internal ushort IndiceesUpdateCount { get { return (_IndiceesUpdateCount); } } #endregion #region IsDesignerHosted internal bool IsDesignerHosted { get { return (DesignMode); } } #endregion #region IsHScrollBarVisible internal bool IsHScrollBarVisible { get { return (_HScrollBar != null && _HScrollBar.Visible); } } #endregion #region IsVScrollBarVisible internal bool IsVScrollBarVisible { get { return (_VScrollBar != null && _VScrollBar.Visible); } } #endregion #region LastActiveCell internal GridCell LastActiveCell { get { return (_LastActiveCell); } set { _LastActiveCell = value; } } #endregion #region NeedMergeLayout private bool _NeedMergeLayout; internal bool NeedMergeLayout { get { return (_NeedMergeLayout); } set { _NeedMergeLayout = value; } } #endregion #region NeedToUpdateIndicees internal bool NeedToUpdateIndicees { get { return (_NeedToUpdateIndicees); } set { _NeedToUpdateIndicees = value; if (value == true) _IndiceesUpdateCount++; } } #endregion #region ScrollBarScrolling internal bool ScrollBarScrolling { get { return (_ScrollBarScrolling); } set { _ScrollBarScrolling = value; } } #endregion #region SetGridCursor internal bool SetGridCursor { get { return (_SetGridCursor); } set { _SetGridCursor = value; } } #endregion #region StyleMouseOverUpdateCount internal ushort StyleMouseOverUpdateCount { get { return (_StyleMouseOverUpdateCount); } set { _StyleMouseOverUpdateCount = value; } } #endregion #region StyleSelectedUpdateCount internal ushort StyleSelectedUpdateCount { get { return (_StyleSelectedUpdateCount); } set { _StyleSelectedUpdateCount = value; } } #endregion #region StyleSelectedMouseOverUpdateCount internal ushort StyleSelectedMouseOverUpdateCount { get { return (_StyleSelectedMouseOverUpdateCount); } set { _StyleSelectedMouseOverUpdateCount = value; } } #endregion #region StyleUpdateCount internal ushort StyleUpdateCount { get { return (_StyleUpdateCount); } set { _StyleUpdateCount = value; } } #endregion #region ToolTip /// /// Gets the Tooltip object used for the grid. /// public System.Windows.Forms.ToolTip ToolTip { get { if (_ToolTip == null) _ToolTip = new System.Windows.Forms.ToolTip(); return (_ToolTip); } } #endregion #region ToolTipText internal string ToolTipText { get { return (_ToolTipText); } set { if (_ToolTipText != value) { _ToolTipText = value; if (string.IsNullOrEmpty(value) == false && value.Length > _MaxToolTipLength) ToolTip.SetToolTip(this, value.Substring(0, _MaxToolTipLength)); else ToolTip.SetToolTip(this, value); ToolTip.Active = (string.IsNullOrEmpty(value) == false); } } } #endregion #region PrimaryGridSize internal Size PrimaryGridSize { get { Size size = _PrimaryGrid.SizeNeeded; int n = (_VScrollOffset > 0) ? _PrimaryGrid.FixedRowHeight : _PrimaryGrid.FixedHeaderHeight; size.Height -= (n + 1); if (_PrimaryGrid.Footer != null && _PrimaryGrid.Footer.Visible == true) size.Height -= _PrimaryGrid.Footer.Size.Height; if (PrimaryGrid.ShowRowHeaders == true) size.Width -= _PrimaryGrid.RowHeaderWidthEx; if (size.Width < 0) size.Width = 0; if (size.Height < 0) size.Height = 0; return (size); } } #endregion #region ViewRect internal Rectangle ViewRect { get { if (_ViewRect.IsEmpty == true) _ViewRect = GetAdjustedBounds(ClientRectangle); return (_ViewRect); } set { _BoundsUpdateCount++; _ViewRect = value; _CViewRect = value; } } #endregion #region GetAdjustedBounds private Rectangle GetAdjustedBounds(Rectangle r) { int n = (_VScrollOffset > 0) ? _PrimaryGrid.FixedRowHeight : _PrimaryGrid.FixedHeaderHeight; r.Y += n; r.Height -= (n + 1); if (_PrimaryGrid.Footer != null && _PrimaryGrid.Footer.Visible == true) r.Height -= _PrimaryGrid.Footer.Size.Height; if (_VScrollBar != null && _VScrollBar.Visible == true) r.Width -= (VScrollBarWidth + 1); if (_HScrollBar != null && _HScrollBar.Visible == true) r.Height -= (HScrollBarHeight + 1); if (r.Width < 0) r.Width = 0; if (r.Height < 0) r.Height = 0; return (r); } #endregion #region ViewRectEx internal Rectangle ViewRectEx { get { Rectangle r = ViewRect; int n = (_VScrollOffset > 0) ? _PrimaryGrid.FixedRowHeight - _PrimaryGrid.FixedHeaderHeight : 0; r.Y -= n; r.Height += n; return (r); } } #endregion #region VScrollBarWidth internal int VScrollBarWidth { get { if (_VScrollBar != null) return (_VScrollBar.Width); return (SystemInformation.VerticalScrollBarWidth); } } #endregion #region DefaultSize /// /// DefaultSize /// protected override Size DefaultSize { get { return new Size(200, 200); } } #endregion #endregion #region OnPaint #region OnPaint /// /// Renders the control. /// /// Paint arguments. protected override void OnPaint(PaintEventArgs e) { if (IsUpdateSuspended == false) { SmoothingMode sm = e.Graphics.SmoothingMode; TextRenderingHint th = e.Graphics.TextRenderingHint; base.OnPaintBackground(e); if (_PrimaryGrid.IsLayoutValid == false) ArrangeGrid(e.Graphics); GridRenderInfo renderInfo = GetGridRenderInfo(e); PaintControl(renderInfo); e.Graphics.SmoothingMode = sm; e.Graphics.TextRenderingHint = th; base.OnPaint(e); #if !TRIAL if (NativeFunctions.keyValidated2 != 266) { TextDrawing.DrawString(e.Graphics, "Invalid License", Font, Color.FromArgb(180, Color.Red), ClientRectangle, eTextFormat.Bottom | eTextFormat.HorizontalCenter); } #else RenderWaterMark(renderInfo); #endif } } #endregion #region PaintControl private void PaintControl(GridRenderInfo renderInfo) { Rectangle r = ClientRectangle; r.Intersect(renderInfo.ClipRectangle); if (r.Width > 0 && r.Height > 0) _PrimaryGrid.Render(renderInfo); RenderScrollBoxArea(renderInfo); NeedMergeLayout = false; } #endregion #region RenderScrollBoxArea private void RenderScrollBoxArea(GridRenderInfo renderInfo) { if (_HScrollBar.Visible && _VScrollBar.Visible) { Rectangle r = _HScrollBar.Bounds; r.X = _VScrollBar.Bounds.X; r.Width = _VScrollBar.Bounds.Width; if (r.IntersectsWith(renderInfo.ClipRectangle)) { Graphics g = renderInfo.Graphics; SmoothingMode sm = g.SmoothingMode; g.SmoothingMode = SmoothingMode.None; g.FillRectangle(SystemBrushes.Control, r); g.SmoothingMode = sm; } } } #endregion #region RenderWaterMark private void RenderWaterMark(GridRenderInfo renderInfo) { Rectangle r = ViewRect; r.X = r.Right - 30; r.Width = 30; if (r.IntersectsWith(renderInfo.ClipRectangle) == true) { Graphics g = renderInfo.Graphics; using (StringFormat sf = new StringFormat()) { sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; sf.FormatFlags = StringFormatFlags.NoWrap | StringFormatFlags.DirectionVertical; using (Font font = new Font("Times New Roman", 9)) { Rectangle t = r; t.X++; t.Y++; using (SolidBrush brush = new SolidBrush(Color.FromArgb(128, Color.Gray))) { g.DrawString("DevComponents SuperGrid Trial", font, brush, t, sf); } using (SolidBrush brush = new SolidBrush(Color.FromArgb(128, Color.Gainsboro))) { g.DrawString("DevComponents SuperGrid Trial", font, brush, r, sf); } } } } } #endregion #endregion #region ArrangeGrid /// /// OnHandleCreated /// /// protected override void OnHandleCreated(EventArgs e) { ArrangeGrid(); base.OnHandleCreated(e); } /// /// Performs grid layout. /// public void ArrangeGrid() { ArrangeGrid(false); } /// /// Performs grid layout. /// ///Whether to force operation even if layout is valid. public void ArrangeGrid(bool force) { if (force == true || _PrimaryGrid.IsLayoutValid == false) { if (_InArrangeGrid == false) { _InArrangeGrid = true; try { using (Graphics g = CreateGraphics()) ArrangeGrid(g); } finally { _InArrangeGrid = false; } } } } private void ArrangeGrid(Graphics g) { ArrangeLayoutCount++; DisplayedMergeLayoutCount++; GridLayoutInfo layoutInfo = GetGridLayoutInfo(g); GridLayoutStateInfo stateInfo = new GridLayoutStateInfo(_PrimaryGrid, 0); Size constraintSize = Size.Empty; _PrimaryGrid.Measure(layoutInfo, stateInfo, constraintSize); stateInfo.PassCount++; CanScrollEx = true; NeedToUpdateIndicees = false; if (HorizontalIsOver(layoutInfo) == true && _HScrollBarVisible) { if(_HScrollBarVisible) layoutInfo.ClientBounds.Height -= HScrollBarHeight; if (VerticalIsOver(layoutInfo) == true && _VScrollBarVisible) layoutInfo.ClientBounds.Width -= VScrollBarWidth; _PrimaryGrid.Measure(layoutInfo, stateInfo, constraintSize); } else { if (VerticalIsOver(layoutInfo) == true && _VScrollBarVisible) { layoutInfo.ClientBounds.Width -= VScrollBarWidth; _PrimaryGrid.Measure(layoutInfo, stateInfo, constraintSize); if (HorizontalIsOver(layoutInfo) == true && _HScrollBarVisible) layoutInfo.ClientBounds.Height -= HScrollBarHeight; } } layoutInfo.ClientBounds.Width = Math.Max(0, layoutInfo.ClientBounds.Width); layoutInfo.ClientBounds.Height = Math.Max(0, layoutInfo.ClientBounds.Height); EnableVScrollBar(layoutInfo); EnableHScrollBar(layoutInfo); ViewRect = Rectangle.Empty; _PrimaryGrid.Arrange(layoutInfo, stateInfo, layoutInfo.ClientBounds); ViewRect = Rectangle.Empty; UpdateScrollBars(layoutInfo); if (_ActiveEditor != null) EditorCell.PositionEditPanel(_ActiveEditor); if (NonModalEditorCell != null) NonModalEditorCell.PositionEditPanel(_ActiveNonModalEditor); if (ActiveFilterPanel != null) _ActiveFilterPanel.PositionEditPanel(); } #region GetGridLayoutInfo private GridLayoutInfo GetGridLayoutInfo(Graphics g) { GridLayoutInfo layoutInfo = new GridLayoutInfo(g, GetGridItemBounds()); layoutInfo.RightToLeft = (RightToLeft == RightToLeft.No); layoutInfo.DefaultVisualStyles = _DefaultVisualStyles; return (layoutInfo); } #endregion #region GetGridItemBounds private Rectangle GetGridItemBounds() { return (ClientRectangle); } #endregion #region GetGridRenderInfo private GridRenderInfo GetGridRenderInfo(PaintEventArgs e) { GridRenderInfo renderInfo = new GridRenderInfo(e.Graphics, Rectangle.Ceiling(e.ClipRectangle)); renderInfo.RightToLeft = (RightToLeft == RightToLeft.Yes); return (renderInfo); } #endregion #endregion #region Scrollbar support #region UpdateScrollBars private void UpdateScrollBars(GridLayoutInfo layoutInfo) { if (_HScrollBarEnabled == true) { _HScrollBar.SmallChange = layoutInfo.ClientBounds.Width / 20; _HScrollBar.Maximum = Math.Max(0, PrimaryGridSize.Width); _HScrollBar.LargeChange = Math.Min(SViewRect.Width, _HScrollBar.Maximum); if (_HScrollBar.Value + _HScrollBar.LargeChange > _HScrollBar.Maximum) { _HScrollBar.Value = _HScrollBar.Maximum - _HScrollBar.LargeChange; _HScrollOffset = _HScrollBar.Value; } _HScrollBar.Refresh(); } if (_VScrollBarEnabled == true) { _VScrollBar.SmallChange = layoutInfo.ClientBounds.Height / 20; _VScrollBar.Maximum = Math.Max(0, PrimaryGridSize.Height); _VScrollBar.LargeChange = Math.Min(SViewRect.Height, _VScrollBar.Maximum); if (_VScrollBar.Value + _VScrollBar.LargeChange > _VScrollBar.Maximum) { _VScrollBar.Value = _VScrollBar.Maximum - _VScrollBar.LargeChange; _VScrollOffset = _VScrollBar.Value; } _VScrollBar.Refresh(); } } #endregion #region EnableHScrollBar private void EnableHScrollBar(GridLayoutInfo layoutInfo) { bool enable = _HScrollBarVisible && (_PrimaryGrid.Size.Width > layoutInfo.ClientBounds.Width); if (enable == true) { _HScrollBar.Location = new Point(layoutInfo.ClientBounds.Left + 1, layoutInfo.ClientBounds.Bottom - 1); int n = layoutInfo.ClientBounds.Width - 2; if (_VScrollBar.Visible == true) n++; _HScrollBar.Width = n; } else { _HScrollBar.Value = 0; _HScrollOffset = 0; } _HScrollBarEnabled = enable; _HScrollBar.Enabled = enable; _HScrollBar.Visible = enable; } #endregion #region EnableVScrollBar private void EnableVScrollBar(GridLayoutInfo layoutInfo) { bool enable = _VScrollBarVisible && (_PrimaryGrid.Size.Height > layoutInfo.ClientBounds.Height); if (enable == true) { _VScrollBar.Location = new Point(layoutInfo.ClientBounds.Right - 1, layoutInfo.ClientBounds.Top + 1); int n = layoutInfo.ClientBounds.Height - 2; if (_HScrollBarVisible && (_PrimaryGrid.Size.Width > layoutInfo.ClientBounds.Width)) n++; _VScrollBar.Height = n; } else { _VScrollBar.Value = 0; _VScrollOffset = 0; } _VScrollBarEnabled = enable; _VScrollBar.Enabled = enable; _VScrollBar.Visible = enable; } #endregion #region HScrollBarScroll private void HScrollBarScroll(object sender, ScrollEventArgs e) { ScrollBarAdv sbar = sender as ScrollBarAdv; if (sbar != null) { if (_HScrollOffset != e.NewValue) { int oldValue = _HScrollOffset; _HScrollOffset = e.NewValue; PostHScrollUpdateEx(oldValue, _HScrollOffset); DoScrollEvent(_PrimaryGrid, e, sbar); } } } #endregion #region VScrollBarScroll private void VScrollBarScroll(object sender, ScrollEventArgs e) { ScrollBarAdv sbar = sender as ScrollBarAdv; if (sbar != null) { if (_VScrollOffset != e.NewValue) { int oldValue = _VScrollOffset; _VScrollOffset = e.NewValue; PostVScrollUpdateEx(oldValue, _VScrollOffset); DoScrollEvent(_PrimaryGrid, e, sbar); } } } #endregion #region HorizontalIsOver private bool HorizontalIsOver(GridLayoutInfo layoutInfo) { return (_PrimaryGrid.Size.Width > layoutInfo.ClientBounds.Width); } #endregion #region VerticalIsOver private bool VerticalIsOver(GridLayoutInfo layoutInfo) { return (_PrimaryGrid.Size.Height > layoutInfo.ClientBounds.Height); } #endregion #region SetupScrollBars private void SetupScrollBars() { if (_VScrollBar == null) { _VScrollBar = new VScrollBarAdv(); _VScrollBar.Width = Dpi.DescaleWidth(SystemInformation.VerticalScrollBarWidth); _VScrollBar.Scroll += VScrollBarScroll; _VScrollBar.MouseEnter += ScrollBarMouseEnter; _VScrollBar.SizeChanged += ScrollBarSizeChanged; _VScrollBar.MouseDown += ScrollBar_MouseDown; _VScrollBar.MouseUp += ScrollBar_MouseUp; _VScrollBar.Visible = false; Controls.Add(_VScrollBar); } if (_HScrollBar == null) { _HScrollBar = new HScrollBarAdv(); _HScrollBar.Height = Dpi.DescaleHeight(SystemInformation.HorizontalScrollBarHeight); _HScrollBar.Scroll += HScrollBarScroll; _HScrollBar.MouseEnter += ScrollBarMouseEnter; _HScrollBar.SizeChanged += ScrollBarSizeChanged; _HScrollBar.MouseDown += ScrollBar_MouseDown; _HScrollBar.MouseUp += ScrollBar_MouseUp; _HScrollBar.Visible = false; Controls.Add(_HScrollBar); } } void ScrollBar_MouseUp(object sender, MouseEventArgs e) { ScrollBarScrolling = false; } void ScrollBar_MouseDown(object sender, MouseEventArgs e) { ScrollBarScrolling = true; } private void ScrollBarSizeChanged(object sender, EventArgs e) { _PrimaryGrid.InvalidateLayout(); } void ScrollBarMouseEnter(object sender, EventArgs e) { SetGridCursor = true; Cursor = Cursors.Default; SetGridCursor = false; } #endregion #region SetVScrollValue internal void SetVScrollValue(int value) { if (_VScrollBar.Visible == true) { int oldValue = _VScrollBar.Value; value = Math.Max(value, 0); value = Math.Min(value, _VScrollBar.Maximum); if (value + _VScrollBar.LargeChange - 1 > _VScrollBar.Maximum) value = _VScrollBar.Maximum - _VScrollBar.LargeChange + 1; value = Math.Max(value, 0); if (_VScrollBar.Value != value) { _VScrollBar.Value = value; _VScrollOffset = value; PostVScrollUpdateEx(oldValue, value); if (Scroll != null || ScrollMin != null || ScrollMax != null) { ScrollEventArgs e = new ScrollEventArgs(ScrollEventType.EndScroll, oldValue, value, ScrollOrientation.VerticalScroll); DoScrollEvent(_PrimaryGrid, e, _VScrollBar); } } } } #endregion #region SetHScrollValue internal void SetHScrollValue(int value) { if (_HScrollBar.Visible == true) { int oldValue = _HScrollBar.Value; value = Math.Max(value, 0); value = Math.Min(value, _HScrollBar.Maximum); if (value + _HScrollBar.LargeChange > _HScrollBar.Maximum) value = _HScrollBar.Maximum - _HScrollBar.LargeChange; value = Math.Max(value, 0); if (_HScrollBar.Value != value) { _HScrollBar.Value = value; _HScrollOffset = value; PostHScrollUpdateEx(oldValue, value); if (Scroll != null || ScrollMin != null || ScrollMax != null) { ScrollEventArgs e = new ScrollEventArgs(ScrollEventType.EndScroll, oldValue, value, ScrollOrientation.HorizontalScroll); DoScrollEvent(_PrimaryGrid, e, _HScrollBar); } } } } #endregion #region PostScrollUpdate private void PostScrollUpdate() { ViewRect = Rectangle.Empty; _PrimaryGrid.InvalidateRender(); PostScrollRefresh(); } #endregion #region PostVScrollUpdateEx private void PostVScrollUpdateEx(int oldValue, int newValue) { if (CanVScrollWindowEx()) { int dv = oldValue - newValue; ViewRect = Rectangle.Empty; Rectangle vr = ViewRect; RECT scroll = new RECT(0, vr.Top, vr.Right, vr.Bottom); RECT update = new RECT(); ScrollWindowEx( Handle, 0, dv, ref scroll, ref scroll, IntPtr.Zero, ref update, 0); Rectangle r = new Rectangle(update.X, update.Y, update.Width, update.Height); r.Inflate(0, 4); Invalidate(r); PostScrollRefresh(); } else { PostScrollUpdate(); } } #region CanVScrollWindowEx private bool CanVScrollWindowEx() { if (IsUpdateSuspended == true || (EnableFastScrolling == false || CanScrollEx == false)) { return (false); } return (_PrimaryGrid.FrozenRowCount == 0); } #endregion #endregion #region PostHScrollUpdateEx private void PostHScrollUpdateEx(int oldValue, int newValue) { if (CanHScrollWindowEx() == true) { int dh = oldValue - newValue; ViewRect = Rectangle.Empty; Rectangle vr = ViewRect; int n = vr.Y - _PrimaryGrid.ColumnHeader.Bounds.Y; vr.Y -= n; vr.Height += n; if (_PrimaryGrid.ShowRowHeaders == true) { vr.X += _PrimaryGrid.RowHeaderWidthEx; vr.Width -= _PrimaryGrid.RowHeaderWidthEx; } else { vr.X++; vr.Width--; } RECT scroll = new RECT(vr.Left, vr.Top, vr.Right - 1, vr.Bottom); RECT update = new RECT(); ScrollWindowEx( Handle, dh, 0, ref scroll, ref scroll, IntPtr.Zero, ref update, 0); Rectangle r = new Rectangle(update.X, update.Y, update.Width, update.Height); r.Inflate(4, 0); Invalidate(r); PostScrollRefresh(); } else { PostScrollUpdate(); } } #region CanHScrollWindowEx private bool CanHScrollWindowEx() { if (IsUpdateSuspended == true || EnableFastScrolling == false) return (false); if (_PrimaryGrid.EnableCellMerging == true || _PrimaryGrid.IsGrouped == true) return (false); if (_PrimaryGrid.Header.Visible == true && _PrimaryGrid.Header.Size.Height > 0) return (false); if (_PrimaryGrid.IsGrouped == true) return (false); return (_PrimaryGrid.FrozenColumnCount == 0); } #endregion #endregion #region PostScrollRefresh private void PostScrollRefresh() { if (_EditorCell != null) _EditorCell.PositionEditPanel(_ActiveEditor); if (_ActiveFilterPanel != null) _ActiveFilterPanel.PositionEditPanel(); if (_ActiveNonModalEditor != null) DeactivateNonModalEditor(); PostInternalMouseMove(); DisplayedMergeLayoutCount++; } #endregion #endregion #region InvalidateRender /// /// Invalidates render of the grid element. /// /// Element to invalidate rendering for. internal void InvalidateRender(GridElement gridElement) { Rectangle bounds = gridElement.BoundsRelative; if (gridElement.Parent != null) { if (gridElement is GridColumn == false || ((GridColumn)gridElement).IsHFrozen == false) bounds.X -= _HScrollOffset; if (bounds.Y > _PrimaryGrid.FixedRowHeight) bounds.Y -= _VScrollOffset; } Invalidate(bounds, true); } internal void InvalidateRender(Rectangle bounds) { Invalidate(bounds, InvokeRequired == false); } #endregion #region Mouse Support #region OnMouseLeave /// /// OnMouseLeave /// /// protected override void OnMouseLeave(EventArgs e) { _PrimaryGrid.InternalMouseLeave(e); base.OnMouseLeave(e); } #endregion #region OnMouseMove /// /// OnMouseMove /// /// protected override void OnMouseMove(MouseEventArgs e) { if (CanProcessMouseMove()) { if (CapturedItem != null) CapturedItem.InternalMouseMove(e); else _PrimaryGrid.InternalMouseMove(e); base.OnMouseMove(e); base.Cursor = _GridCursor; if (_PrimaryGrid.IsDesignerHosted == true) Cursor = Cursors.Arrow; } } private bool CanProcessMouseMove() { return (Keyboard.IsKeyDown(Keys.Up) == false && Keyboard.IsKeyDown(Keys.Down) == false && Keyboard.IsKeyDown(Keys.Left) == false && Keyboard.IsKeyDown(Keys.Right) == false); } #endregion #region OnMouseDown /// /// OnMouseDown /// /// protected override void OnMouseDown(MouseEventArgs e) { Focus(); base.OnMouseDown(e); _PrimaryGrid.InternalMouseDown(e); } #endregion #region OnMouseUp /// /// OnMouseUp /// /// protected override void OnMouseUp(MouseEventArgs e) { DisableAutoScrolling(); if (CapturedItem != null) CapturedItem.InternalMouseUp(e); else _PrimaryGrid.InternalMouseUp(e); base.OnMouseUp(e); if (_ActiveEditor != null) _ActiveEditor.EditorCell.FocusEditor(_ActiveEditor); } #endregion #region OnMouseClick /// /// OnMouseClick /// /// protected override void OnMouseClick(MouseEventArgs e) { _PrimaryGrid.InternalMouseClick(e); base.OnMouseClick(e); } #endregion #region OnMouseDoubleClick /// /// OnMouseDoubleClick /// /// protected override void OnMouseDoubleClick(MouseEventArgs e) { _PrimaryGrid.InternalMouseDoubleClick(e); base.OnMouseDoubleClick(e); } #endregion #region OnMousewheel protected override void OnMouseWheel(MouseEventArgs e) { if (CanProcessMouseWheel() == true) MouseWheelHandler(e.Delta / SystemInformation.MouseWheelScrollDelta); base.OnMouseWheel(e); } private void MouseWheelHandler(int delta) { int value = -(delta * SystemInformation.MouseWheelScrollLines); value *= _VScrollBar.SmallChange; value += _VScrollBar.Value; SetVScrollValue(value); Cursor.Position = Cursor.Position; } #endregion #endregion #region Keyboard support #region IsInputChar /// /// IsInputChar /// /// /// protected override bool IsInputChar(char charCode) { if (char.IsLetterOrDigit(charCode)) return (true); return (base.IsInputChar(charCode)); } #endregion #region OnKeyDown /// /// Handles KeyDown events /// /// protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); if (e.Handled == false) { if (e.Handled == true || ProcessInCellKeyDown(e.KeyData) == true) { e.SuppressKeyPress = true; } } } #endregion #region OnKeyPress /// /// Handles KeyPress events /// /// protected override void OnKeyPress(KeyPressEventArgs e) { GridCell cell = GetCellToEdit(); if (cell != null) { if (cell.CellEditMode == CellEditMode.Modal) { switch (cell.GridPanel.KeyboardEditMode) { case KeyboardEditMode.EditOnKeystroke: case KeyboardEditMode.EditOnKeystrokeOrF2: if (cell.CanSetActiveCell(cell.GridPanel) == true) { if (cell.BeginEdit(true) != null) { Keys modifiers = ModifierKeys; bool shift = ((modifiers & Keys.Shift) == Keys.Shift) ^ (Console.CapsLock == true); if (shift == true) modifiers |= Keys.Shift; else modifiers &= ~Keys.Shift; Keys keyData = _LastKeyDown | modifiers; if (_ActiveEditor.WantsInputKey(keyData, false) == true) PressKeyDown((ushort)(keyData)); } } break; } } else { cell.PostCellKeyDown(_LastKeyDown); } } base.OnKeyPress(e); } #endregion #region ProcessInCellKeyDown private bool ProcessInCellKeyDown(Keys keyData) { if (ProcessGridKeyDown(keyData) == false) { if (keyData == Keys.F2) { GridCell cell = GetCellToEdit(); if (cell != null) { if (cell.CellEditMode == CellEditMode.Modal) { switch (cell.GridPanel.KeyboardEditMode) { case KeyboardEditMode.EditOnF2: case KeyboardEditMode.EditOnKeystrokeOrF2: if (cell.IsEmptyCell == false) { if (cell.CanSetActiveCell(cell.GridPanel) == true) { cell.BeginEdit(false); return (true); } } break; } } } } return (false); } return (true); } #endregion #region PressKeyDown /// /// Sends the given input scanCode to the /// current active edit control /// /// public void PressKeyDown(ushort scanCode) { _KeyPressSent = true; if (Marshal.SizeOf(new IntPtr()) == 8) SendInput64(scanCode); else SendInput32(scanCode); } private void SendInput32(ushort scanCode) { Input32[] inputs = new Input32[1]; inputs[0].type = InputKeyboard; inputs[0].ki = new KeyBoardInput(scanCode); SendInput(1, inputs, Marshal.SizeOf(inputs[0])); } private void SendInput64(ushort scanCode) { Input64[] inputs = new Input64[1]; inputs[0].type = InputKeyboard; inputs[0].ki = new KeyboardInput64(scanCode); SendInput(1, inputs, Marshal.SizeOf(inputs[0])); } #endregion #region GetCellToEdit private GridCell GetCellToEdit() { GridPanel panel = _ActiveGrid; if (panel != null && panel.SuperGrid.Focused == true) { if (panel.ReadOnly == true) return (null); if (panel.SelectionGranularity != SelectionGranularity.Cell) { GridRow row = panel.ActiveRow as GridRow; if (row != null) { if (panel.PrimaryColumn != null && panel.PrimaryColumn.Visible == true) { if (row.Cells.Count > panel.PrimaryColumnIndex) return (row.Cells[panel.PrimaryColumnIndex]); } return (row.FirstVisibleCell); } } else { GridCell cell = ActiveElement as GridCell; if (cell != null) { if (cell.AllowSelection == true) return (cell); } } } return (null); } #endregion #region SuperGridControlPreviewKeyDown void SuperGridControlPreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { DoPreviewKeyDown(e.KeyData); if (e.KeyData == Keys.Tab || e.KeyData == (Keys.Tab | Keys.Shift)) { if (_TabSelection != TabSelection.Control) e.IsInputKey = true; } else { if (GridWantsKey(e.KeyData) == true) e.IsInputKey = true; } } #endregion #endregion #region ProcessInFilterEditKeyDown private bool ProcessInFilterEditKeyDown(Keys keyData) { bool wantsKey = GridWantsKey(keyData); wantsKey = ActiveFilterPanel.WantsInputKey(keyData, wantsKey); if (wantsKey == false) return (ProcessFilterEditKeyDown(keyData)); return (false); } #endregion #region ProcessInEditKeyDown private bool ProcessInEditKeyDown(Keys keyData) { bool wantsKey = GridWantsKey(keyData); wantsKey = _ActiveEditor.WantsInputKey(keyData, wantsKey); if (wantsKey == false) ProcessInEditGridKeyDown(keyData); return (wantsKey == false); } #endregion #region ProcessInEditGridKeyDown private void ProcessInEditGridKeyDown(Keys keyData) { switch (keyData) { case Keys.Escape: _EditorCell.CancelEdit(); break; case Keys.Enter: if (_EditorCell.EndEdit() == true) ProcessGridKeyDown(keyData); break; default: if (GridWantsKey(keyData) == true) { if (_EditorCell.EndEdit() == true) ProcessGridKeyDown(keyData); } break; } } #endregion #region ProcessGridKeyDown #region ProcessGridKeyDown private bool ProcessGridKeyDown(Keys keyData) { if (ActiveElement == null) { switch (_PrimaryGrid.SelectionGranularity) { case SelectionGranularity.Cell: SetFirstAvailableCell(_PrimaryGrid, false); break; default: SetFirstAvailableRow(_PrimaryGrid, false); break; } switch (keyData) { case Keys.Tab | Keys.Control: Parent.SelectNextControl(this, true, true, true, true); return (true); case Keys.Tab | Keys.Shift | Keys.Control: Parent.SelectNextControl(this, false, true, true, true); return (true); case Keys.Insert: if (_PrimaryGrid != null) { if (_PrimaryGrid.Rows.Count == 0) { if (_PrimaryGrid.DataBinder.CanInsertRow == true) { _PrimaryGrid.InsertRow(0); return (true); } } } break; } return (false); } if (ActiveElement.GridPanel == null) return (false); bool processed = true; if (keyData == Keys.Escape) CancelCapture(); bool ms = ActiveElement.GridPanel.MultiSelect; switch (keyData) { case Keys.NumLock: break; case Keys.Down: ProcessDownKey(true, false); break; case Keys.Down | Keys.Control: ProcessDownKey(false, false); break; case Keys.Down | Keys.Shift: case Keys.Down | Keys.Shift | Keys.Control: ProcessDownKey(true, ms); break; case Keys.End: ProcessEndKey(false); break; case Keys.End | Keys.Shift: ProcessEndKey(ms); break; case Keys.End | Keys.Control: ProcessCtrlEndKey(false); break; case Keys.End | Keys.Control | Keys.Shift: ProcessCtrlEndKey(ms); break; case Keys.Enter: ProcessEnterKey(true, false); break; case Keys.Enter | Keys.Shift: case Keys.Enter | Keys.Control: case Keys.Enter | Keys.Shift | Keys.Control: ProcessShiftEnterKey(); break; case Keys.Escape: if (ProcessEscapeKey() == false) { Form form = FindForm(); if (form != null && form.CancelButton != null) form.CancelButton.PerformClick(); } break; case Keys.Home: ProcessHomeKey(false); break; case Keys.Home | Keys.Shift: ProcessHomeKey(ms); break; case Keys.Home | Keys.Control: ProcessCtrlHomeKey(false); break; case Keys.Home | Keys.Control | Keys.Shift: ProcessCtrlHomeKey(ms); break; case Keys.Left: ProcessLeftKey(true, false); break; case Keys.Left | Keys.Shift: case Keys.Left | Keys.Shift | Keys.Control: ProcessLeftKey(true, ms); break; case Keys.Left | Keys.Control: ProcessLeftKey(false, false); break; case Keys.PageUp: ProcessPageUpKey(false); break; case Keys.PageUp | Keys.Shift: case Keys.PageUp | Keys.Shift | Keys.Control: ProcessPageUpKey(ms); break; case Keys.PageDown: ProcessPageDownKey(false); break; case Keys.PageDown | Keys.Shift: case Keys.PageDown | Keys.Shift | Keys.Control: ProcessPageDownKey(ms); break; case Keys.Tab: processed = ProcessTabKey(); break; case Keys.Tab | Keys.Shift: processed = ProcessShiftTabKey(); break; case Keys.Tab | Keys.Control: Parent.SelectNextControl(this, true, true, true, true); break; case Keys.Tab | Keys.Shift | Keys.Control: Parent.SelectNextControl(this, false, true, true, true); break; case Keys.Right: ProcessRightKey(true, false); break; case Keys.Right | Keys.Shift: case Keys.Right | Keys.Shift | Keys.Control: ProcessRightKey(true, ms); break; case Keys.Right | Keys.Control: ProcessRightKey(false, false); break; case Keys.Space: if (ActiveElement is GridContainer) { GridContainer item = (GridContainer)ActiveElement; item.Expanded = !item.Expanded; } else { processed = false; if (ActiveElement is GridCell) { GridCell cell = (GridCell)ActiveElement; if (cell.Merged && cell.MergeSuspended == false) { cell.SuspendMerge(false); processed = true; } } } break; case Keys.Space | Keys.Shift: ProcessShiftSpaceKey(ms); break; case Keys.Space | Keys.Control: ProcessCtrlSpaceKey(ms); break; case Keys.Up: ProcessUpKey(true, false); break; case Keys.Up | Keys.Shift: case Keys.Up | Keys.Shift | Keys.Control: ProcessUpKey(true, ms); break; case Keys.Up | Keys.Control: ProcessUpKey(false, false); break; case Keys.Delete: ProcessDeleteKey(); break; case Keys.Delete | Keys.Shift: ProcessShiftDeleteKey(); break; case Keys.Insert: ProcessInsertKey(); break; case Keys.Insert | Keys.Shift: ProcessShiftInsertKey(); break; default: processed = false; break; } return (processed); } #endregion #region ProcessEscapeKey private bool ProcessEscapeKey() { if (ActiveElement is GridCell) { GridCell cell = (GridCell)ActiveElement; if (cell.MergeSuspended == true) { cell.ResumeMerge(null); return (true); } } GridRow row = ActiveRow as GridRow; if (row != null) { GridPanel panel = row.GridPanel; if (row.IsInsertRow == false && row.IsTempInsertRow == true) { row.RowNeedsStored = false; if (panel.VirtualMode == true) { panel.VirtualRowCountEx--; panel.VirtualRows.MaxRowIndex = row.RowIndex - 1; panel.LatentActiveRowIndex = row.RowIndex; panel.LatentActiveContainer = panel; panel.VirtualTempInsertRow = null; panel.InvalidateLayout(); row.Dispose(); } else { panel.LatentActiveRowIndex = row.RowIndex; panel.LatentActiveContainer = panel; panel.Rows.Remove(row); _LastProcessedItem = null; } ActiveRow = null; panel.ActiveRow = null; return (true); } } return (false); } #endregion #region ProcessPageUpKey private void ProcessPageUpKey(bool extend) { try { BeginUpdate(); if (ActiveElement is GridCell) ProcessCellPageUpKey(extend); else if (ActiveElement is GridContainer) ProcessRowPageUpKey(extend); } finally { EndUpdate(); } } #region ProcessCellPageUpKey private void ProcessCellPageUpKey(bool extend) { GridCell cell = (GridCell)ActiveElement; GridPanel panel = cell.GridPanel; GridContainer lrow = cell.GridRow; GridContainer container = panel.FirstOnScreenRow; if (lrow == container) { lrow.ScrollToBottom(); container = panel.FirstOnScreenRow; } while (container != null) { GridRow row = container as GridRow; if (row != null) { GridCell ecell = row.GetCell(cell.ColumnIndex, panel.AllowEmptyCellSelection); if (ecell != null) { if (ecell.AllowSelection == true) { KeySelectCell(panel, ecell, true, extend); break; } } } container = container.PrevVisibleRow; } } #endregion #region ProcessRowPageUpKey private void ProcessRowPageUpKey(bool extend) { GridContainer lrow = (GridContainer)ActiveElement; GridPanel panel = lrow.GridPanel; GridContainer row = panel.FirstOnScreenRow; if (lrow != row) { KeySelectRow(panel, row, true, extend); } else { lrow.ScrollToBottom(); KeySelectRow(panel, panel.FirstOnScreenRow, true, extend); } } #endregion #endregion #region ProcessPageDownKey private void ProcessPageDownKey(bool extend) { try { BeginUpdate(); if (ActiveElement is GridCell) ProcessCellPageDownKey(extend); else if (ActiveElement is GridContainer) ProcessRowPageDownKey(extend); } finally { EndUpdate(); } } #region ProcessCellPageDownKey private void ProcessCellPageDownKey(bool extend) { GridCell cell = (GridCell)ActiveElement; GridPanel panel = cell.GridPanel; GridContainer lrow = cell.GridRow; GridContainer container = panel.LastOnScreenRow; if (lrow.GridIndex == container.GridIndex) { lrow.ScrollToTop(); container = panel.LastOnScreenRow; } while (container != null) { GridRow row = container as GridRow; if (row != null) { GridCell ecell = row.GetCell(cell.ColumnIndex, panel.AllowEmptyCellSelection); if (ecell != null) { if (ecell.AllowSelection == true) { KeySelectCell(panel, ecell, true, extend); break; } } } container = container.NextVisibleRow; } } #endregion #region ProcessRowPageDownKey private void ProcessRowPageDownKey(bool extend) { GridContainer lrow = (GridContainer)ActiveElement; GridPanel panel = lrow.GridPanel; GridContainer row = panel.LastOnScreenRow; if (lrow != row) { KeySelectRow(panel, row, true, extend); } else { lrow.ScrollToTop(); row = panel.LastOnScreenRow; KeySelectRow(panel, row, true, extend); } } #endregion #endregion #region ProcessEnterKey private void ProcessEnterKey(bool select, bool extend) { if (ActiveElement is GridCell) { GridCell cell = (GridCell) ActiveElement; GridPanel panel = cell.GridPanel; if (cell.GridRow.IsInsertRow == true) { cell.BeginEdit(false); cell.EditorDirty = true; cell.EndEdit(); } else { if (panel.EnterKeySelectsNextRow == true) ProcessCellDownKey(select, extend); else cell.EndEdit(); } } else if (ActiveElement is GridContainer) { GridContainer row = (GridContainer)ActiveElement; GridPanel panel = row.GridPanel; if (panel.EnterKeySelectsNextRow == true) ProcessRowDownKey(select, extend); } } #endregion #region ProcessShiftEnterKey private void ProcessShiftEnterKey() { if (ActiveElement is GridCell) ProcessCellShiftEnterKey(); else if (ActiveElement is GridContainer) ProcessRowShiftEnterKey(); } #region ProcessCellShiftEnterKey private void ProcessCellShiftEnterKey() { GridCell cell = (GridCell)ActiveElement; KeySelectRow(cell.GridPanel, cell.GridRow, true, false); } #endregion #region ProcessRowShiftEnterKey private void ProcessRowShiftEnterKey() { if (ActiveElement is GridRow) { GridRow row = (GridRow)ActiveElement; GridPanel panel = row.GridPanel; GridColumn column = panel.Columns.FirstVisibleColumn; if (column != null) KeySelectCell(panel, row[column.ColumnIndex], true, false); } } #endregion #endregion #region ProcessCtrlSpaceKey private void ProcessCtrlSpaceKey(bool extend) { if (ActiveElement is GridCell) ProcessCellCtrlSpaceKey(extend); else if (ActiveElement is GridContainer) ProcessRowCtrlSpaceKey(extend); } #region ProcessCellCtrlSpaceKey private void ProcessCellCtrlSpaceKey(bool extend) { GridCell cell = (GridCell) ActiveElement; if (extend == true) KeyCtrlSelectCell(cell); else KeySelectCell(cell.GridPanel, cell, true, false); } #endregion #region ProcessRowCtrlSpaceKey private void ProcessRowCtrlSpaceKey(bool extend) { GridContainer row = (GridContainer)ActiveElement; if (extend == true) KeyCtrlSelectRow(row); else KeySelectRow(row.GridPanel, row, true, false); } #endregion #endregion #region ProcessShiftSpaceKey private void ProcessShiftSpaceKey(bool extend) { if (ActiveElement is GridCell) ProcessCellShiftSpaceKey(extend); else if (ActiveElement is GridContainer) ProcessRowShiftSpaceKey(extend); } #region ProcessCellShiftSpaceKey private void ProcessCellShiftSpaceKey(bool extend) { GridCell cell = (GridCell)ActiveElement; GridPanel panel = cell.GridPanel; KeySelectCell(panel, cell, true, extend); } #endregion #region ProcessRowShiftSpaceKey private void ProcessRowShiftSpaceKey(bool extend) { GridContainer lrow = (GridContainer)ActiveElement; GridPanel panel = (lrow is GridPanel) ? lrow.GetParentPanel() : lrow.GridPanel; KeySelectRow(panel, lrow, true, extend); } #endregion #endregion #region ProcessUpKey private void ProcessUpKey(bool select, bool extend) { if (ActiveElement is GridCell) ProcessCellUpKey(select, extend); else if (ActiveElement is GridContainer) ProcessRowUpKey(select, extend); } #region ProcessCellUpKey private void ProcessCellUpKey(bool select, bool extend) { GridCell cell = (GridCell)ActiveElement; GridPanel panel = cell.GridPanel; _LastCellIndex = cell.ColumnIndex; GridContainer prow = GetPrevRow(cell.GridRow); if (panel.GroupHeaderKeyBehavior == GroupHeaderKeyBehavior.Select) { if (prow is GridGroup) { KeySelectRow(panel, (GridGroup)cell.GridRow.Parent, select, extend); return; } } GridCell pcell = GetPrevRowCell(prow, cell.ColumnIndex); if (KeySelectCell(panel, pcell, select, extend) == false) { if (VScrollOffset > 0) { VScrollOffset -= _VScrollBar.SmallChange; } else { if (select == false && panel.Filter.Visible == true && cell.GridColumn.IsFilteringEnabled == true) { panel.Filter.ActivateFilterEdit(cell.GridColumn); } } } } #region GetPrevRowCell private GridCell GetPrevRowCell(GridContainer item, int index) { while (item != null) { GridRow row = item as GridRow; if (row != null) { if (item.AllowSelection == true) { GridCell cell = row.GetCell(index, row.GridPanel.AllowEmptyCellSelection); if (cell != null) { if (cell.AllowSelection == true) return (cell); } } } item = item.PrevVisibleRow; } return (null); } #endregion #endregion #region ProcessRowUpKey private void ProcessRowUpKey(bool select, bool extend) { GridContainer lrow = (GridContainer)ActiveElement; GridPanel panel = (lrow is GridPanel) ? lrow.GetParentPanel() : lrow.GridPanel; GridContainer row = GetPrevRow(lrow); if (lrow is GridGroup) { if (_LastCellIndex >= 0 && (row is GridGroup == false)) { GridCell cell = GetPrevRowCell(row, _LastCellIndex); KeySelectCell(panel, cell, select, extend); return; } } else { _LastCellIndex = -1; } if (KeySelectRow(panel, row, select, extend) == false) { if (VScrollOffset > 0) { VScrollOffset -= _VScrollBar.SmallChange; } else { if (select == false && panel.Filter.Visible == true) { GridColumn column = panel.Columns.FirstVisibleColumn; while (column != null) { if (column.IsFilteringEnabled == true) { ActivateFilterPanel(column); break; } column = column.NextVisibleColumn; } } } } } #endregion #region GetPrevRow private GridContainer GetPrevRow(GridContainer lrow) { GridContainer row = lrow.PrevVisibleRow; while (row != null) { if (row.AllowSelection == true) return (row); row = row.PrevVisibleRow; } return (null); } #endregion #endregion #region ProcessDownKey private void ProcessDownKey(bool select, bool extend) { if (ActiveElement is GridCell) ProcessCellDownKey(select, extend); else if (ActiveElement is GridContainer) ProcessRowDownKey(select, extend); } #region ProcessCellDownKey private void ProcessCellDownKey(bool select, bool extend) { GridCell cell = (GridCell) ActiveElement; GridPanel panel = cell.GridPanel; _LastCellIndex = cell.ColumnIndex; GridContainer nrow = GetNextRow(cell.GridRow); if (panel.GroupHeaderKeyBehavior == GroupHeaderKeyBehavior.Select) { if (nrow is GridGroup) { if (KeySelectRow(panel, nrow, select, extend) == false) VScrollOffset += _VScrollBar.SmallChange; return; } } GridCell ncell = GetNextRowCell(nrow, _LastCellIndex); if (KeySelectCell(panel, ncell, select, extend) == false) { if (nrow == null) VScrollOffset += _VScrollBar.SmallChange; } } #region GetNextRowCell private GridCell GetNextRowCell(GridContainer item, int index) { while (item != null) { GridRow row = item as GridRow; if (row != null) { if (row.AllowSelection == true) { GridCell cell = row.GetCell(index, row.GridPanel.AllowEmptyCellSelection); if (cell != null) { if (cell.AllowSelection == true) return (cell); } } } item = item.NextVisibleRow; } return (null); } #endregion #endregion #region ProcessRowDownKey private void ProcessRowDownKey(bool select, bool extend) { GridContainer lrow = (GridContainer)ActiveElement; GridPanel panel = (lrow is GridPanel) ? lrow.GetParentPanel() : lrow.GridPanel; GridContainer row = GetNextRow(lrow); if (lrow is GridGroup) { if (_LastCellIndex >= 0 && (row is GridGroup == false)) { GridCell cell = GetNextRowCell(row, _LastCellIndex); KeySelectCell(panel, cell, select, extend); return; } } else { _LastCellIndex = -1; } if (KeySelectRow(panel, row, select, extend) == false) VScrollOffset += _VScrollBar.SmallChange; } #endregion #region GetNextRow private GridContainer GetNextRow(GridContainer lrow) { GridContainer row = lrow.NextVisibleRow; while (row != null) { if (row.AllowSelection == true) return (row); row = row.NextVisibleRow; } return (null); } #endregion #endregion #region ProcessLeftKey private bool ProcessLeftKey(bool select, bool extend) { if (ActiveElement is GridCell) return (ProcessCellLeftKey(select, extend)); if (ActiveElement is GridContainer) ProcessRowLeftKey(); return (true); } #region ProcessCellLeftKey private bool ProcessCellLeftKey(bool select, bool extend) { GridCell lcell = (GridCell) ActiveElement; GridPanel panel = lcell.GridPanel; if ((ModifierKeys & (Keys.Shift | Keys.Control)) == (Keys.Shift | Keys.Control)) { KeySelectRow(panel, lcell.GridRow, true, false); return (true); } GridCell cell = lcell.GetPreviousCell(true, !extend); bool selected = KeySelectCell(panel, cell, select, extend); if (selected == false) HScrollOffset -= _HScrollBar.SmallChange; return (selected); } #endregion #region ProcessRowLeftKey private void ProcessRowLeftKey() { GridContainer lrow = (GridContainer)ActiveElement; if (lrow.Expanded == true) { lrow.Expanded = false; } else { GridContainer crow = lrow.Parent as GridContainer; if (crow != null && crow.Parent != null) { ActiveElement = crow; crow.GridPanel.ClearAll(true); crow.IsSelected = true; crow.EnsureVisible(); } else { GridRow row = lrow as GridRow; if (row != null) { if (lrow.GridPanel.SelectionGranularity == SelectionGranularity.Cell) { GridCell cell = row.LastSelectableCell; if (cell != null) KeySelectCell(row.GridPanel, cell, true, false); } else { HScrollOffset -= _HScrollBar.SmallChange; } } } } } #endregion #endregion #region ProcessRightKey private bool ProcessRightKey(bool select, bool extend) { if (ActiveElement is GridCell) return (ProcessCellRightKey(select, extend)); if (ActiveElement is GridContainer) ProcessRowRightKey(); return (true); } #region ProcessCellRightKey private bool ProcessCellRightKey(bool select, bool extend) { GridCell lcell = (GridCell) ActiveElement; GridPanel panel = lcell.GridPanel; GridCell cell = lcell.GetNextCell(true, !extend); bool selected = KeySelectCell(panel, cell, select, extend); if (selected == false) HScrollOffset += _HScrollBar.SmallChange; return (selected); } #endregion #region ProcessRowRightKey private void ProcessRowRightKey() { GridContainer lrow = (GridContainer)ActiveElement; if (lrow is GridPanel) { GridPanel panel = (GridPanel)lrow; GridRow row = panel.GetRowFromIndex(0) as GridRow; if (row != null) { ActiveElement = row; lrow.GetParentPanel().ClearAll(true); lrow.GridPanel.ClearAll(true); row.IsSelected = true; row.EnsureVisible(); } } else { if (lrow.Rows.Count > 0 || lrow.RowsUnresolved == true) { if (lrow.Expanded == false) lrow.Expanded = true; } else { GridRow row = lrow as GridRow; if (row != null) { if (lrow.GridPanel.SelectionGranularity == SelectionGranularity.Cell) { GridCell cell = row.FirstSelectableCell; if (cell != null) KeySelectCell(row.GridPanel, cell, true, false); } else { HScrollOffset += _HScrollBar.SmallChange; } } } } } #endregion #endregion #region ProcessTabKey private bool ProcessTabKey() { if (_TabSelection == TabSelection.Control) return (false); if (ActiveElement is GridCell) { GridCell lcell = (GridCell)ActiveElement; GridPanel panel = lcell.GridPanel; GridCell cell = lcell.GetNextCell(true, _TabSelection == TabSelection.Cell); KeySelectCell(panel, cell, true, false); return (true); } GridRow row = ActiveElement as GridRow; if (row != null) { if (row.GridPanel.SelectionGranularity != SelectionGranularity.Cell) { GridCell cell = row.FirstOnScreenCell; if (cell != null) { GridCell cellNext = cell.GetNextCell(false, false); if (cellNext != null) { int n = 0; GridColumn col = row.GridPanel.Columns.FirstVisibleColumn; while (col != null && col.ColumnIndex != cellNext.ColumnIndex) { n += col.Bounds.Width; col = col.NextVisibleColumn; } HScrollOffset = n; } } return (true); } } return (ProcessRightKey(true, false)); } #endregion #region ProcessShiftTabKey private bool ProcessShiftTabKey() { if (_TabSelection == TabSelection.Control) return (false); if (ActiveElement is GridCell) { GridCell lcell = (GridCell)ActiveElement; GridPanel panel = lcell.GridPanel; GridCell cell = lcell.GetPreviousCell(true, _TabSelection == TabSelection.Cell); return (KeySelectCell(panel, cell, true, false)); } GridRow row = ActiveElement as GridRow; if (row != null) { if (row.GridPanel.SelectionGranularity != SelectionGranularity.Cell) { if (_HScrollOffset > 0) { GridCell cell = row.FirstOnScreenCell; if (cell != null) { Rectangle t = row.GridPanel.ViewRect; Rectangle r = cell.Bounds; GridCell fcell = row.LastFrozenCell; if (fcell != null) t.X = fcell.Bounds.Right; if (r.Left >= t.Left) cell = cell.GetPreviousCell(false, false); if (cell != null) cell.EnsureVisible(); return (true); } } } } return (ProcessLeftKey(true, false)); } #endregion #region ProcessHomeKey private void ProcessHomeKey(bool extend) { if (ActiveElement is GridCell) { GridCell lcell = (GridCell)ActiveElement; GridPanel panel = lcell.GridPanel; GridCell cell = lcell.GridRow.FirstSelectableCell; if (cell != lcell) KeySelectCell(panel, cell, true, extend); } else if (ActiveElement is GridContainer) { GridPanel panel = ActiveElement.GridPanel; KeySelectRow(panel, panel.FirstSelectableRow, true, extend); } } #endregion #region ProcessCtrlHomeKey private void ProcessCtrlHomeKey(bool extend) { if (ActiveElement is GridCell) { GridCell cell = (GridCell)ActiveElement; GridPanel panel = cell.GridPanel; SetFirstAvailableCell(panel, extend); } else if (ActiveElement is GridRow) { KeySelectRow(_PrimaryGrid, _PrimaryGrid.FirstSelectableRow, true, extend); } } #endregion #region ProcessEndKey private void ProcessEndKey(bool extend) { if (ActiveElement is GridCell) { GridCell lcell = (GridCell)ActiveElement; GridPanel panel = lcell.GridPanel; GridCell cell = lcell.GridRow.LastSelectableCell; if (cell != lcell) KeySelectCell(panel, cell, true, extend); } else if (ActiveElement is GridContainer) { GridPanel panel = ActiveElement.GridPanel; GridContainer row = panel.LastSelectableRow; if (row != null) KeySelectRow(panel, row, true, extend); } } #endregion #region ProcessCtrlEndKey private void ProcessCtrlEndKey(bool extend) { if (ActiveElement is GridCell) { GridCell cell = (GridCell)ActiveElement; GridPanel panel = cell.GridPanel; SetLastAvailableCell(panel, extend); } else if (ActiveElement is GridRow) { KeySelectRow(_PrimaryGrid, _PrimaryGrid.LastVisibleRow, true, extend); } } #endregion #region SetFirstAvailableRow private void SetFirstAvailableRow(GridPanel panel, bool extend) { GridContainer container = panel.FirstVisibleRow; while (container != null) { GridRow row = container as GridRow; if (row != null) { if (row.AllowSelection == true) { KeySelectRow(panel, row, true, extend); break; } } container = container.NextVisibleRow; } } #endregion #region SetFirstAvailableCell private void SetFirstAvailableCell(GridPanel panel, bool extend) { GridColumn column = panel.Columns.FirstVisibleColumn; GridContainer container = panel.FirstVisibleRow; if (column != null) { while (container != null) { GridRow row = container as GridRow; if (row != null) { if (row.AllowSelection == true) { GridCell cell = row.GetCell(column.ColumnIndex, panel.AllowEmptyCellSelection); if (cell != null) { if (cell.AllowSelection == false) cell = cell.GetNextCell(true); KeySelectCell(panel, cell, true, extend); } break; } } container = container.NextVisibleRow; } } } #endregion #region SetLastAvailableCell private void SetLastAvailableCell(GridPanel panel, bool extend) { GridColumn column = panel.Columns.LastVisibleColumn; GridContainer container = panel.LastVisibleRow; while (container != null) { GridRow row = container as GridRow; if (row != null) { if (row.AllowSelection == true) { GridCell cell = row.GetCell(column.ColumnIndex, panel.AllowEmptyCellSelection); if (cell != null) { if (cell.AllowSelection == false) cell = cell.GetPreviousCell(true); KeySelectCell(panel, cell, true, extend); } break; } } container = container.PrevVisibleRow; } } #endregion #region KeySelectCell internal bool KeySelectCell( GridPanel panel, GridCell cell, bool select, bool extend) { if (cell != null) { int rowIndex = cell.GridRow.RowIndex; if (cell.CanSetActiveCell(panel) == true) { if (select == true && extend == false) { panel.SelectionRowAnchor = cell.GridRow; panel.SelectionColumnAnchor = cell.GridColumn; } if (select == true) { if (rowIndex != cell.GridRow.RowIndex) ArrangeGrid(); cell.ExtendSelection(panel, cell, extend); if (cell.CellEditMode == CellEditMode.Modal) { if (panel.KeyboardEditMode == KeyboardEditMode.EditOnEntry) cell.BeginEdit(true); } } else { if (ActiveElement != null) ActiveElement.InvalidateRender(); cell.InvalidateRender(); } panel.LastProcessedItem = cell; cell.EnsureVisible(); return (true); } } return (false); } #endregion #region KeyCtrlSelectCell private void KeyCtrlSelectCell(GridCell cell) { if (cell != null) { ActiveElement = cell; cell.IsSelected = !cell.IsSelected; cell.EnsureVisible(); } } #endregion #region KeySelectRow internal bool KeySelectRow(GridPanel panel, GridContainer row, bool select, bool extend) { if (row != null) { int rowIndex = row.RowIndex; if (row.CanSetActiveRow(false) == true) { if (select == true && (extend == false || panel.SelectionRowAnchor == null)) panel.SelectionRowAnchor = row; if (select == true) { if (rowIndex != row.RowIndex) ArrangeGrid(); row.ExtendSelection(panel, row, extend); } else { if (ActiveElement != null) ActiveElement.InvalidateRender(); row.InvalidateRender(); } panel.SetActiveRow(row, true); panel.LastProcessedItem = row; row.EnsureVisible(); } return (true); } return (false); } #endregion #region KeyCtrlSelectRow private void KeyCtrlSelectRow(GridContainer row) { if (row != null) { ActiveElement = row; row.IsSelected = !row.IsSelected; row.EnsureVisible(); } } #endregion #region ProcessDeleteKey private void ProcessDeleteKey() { if (CanDeleteRows() == true) { SelectedElements selRows = _ActiveGrid.InternalSelectedRows.Copy(); if (selRows.Count > 0) { if (_ActiveGrid.ShowInsertRow == true) { if (_ActiveGrid.VirtualMode == true) { selRows.RemoveItem(_ActiveGrid.VirtualRowCountEx - 1); } else { int n = _ActiveGrid.Rows.Count - 1; GridRow row = _ActiveGrid.Rows[n] as GridRow; if (row != null) { if (row.IsInsertRow == false) throw new Exception(); selRows.RemoveItem(row.GridIndex); } } } } if (selRows.Count > 0) { if (DoRowDeletingEvent(_ActiveGrid, selRows) == false) { if (selRows.Count > 0) DeleteRows(_ActiveGrid, selRows); } } } else { if (DoPlayingSoundEvent(null, null, PlaySoundContext.RowDeleteAttempt) == false) SystemSounds.Beep.Play(); } } #region CanDeleteRows private bool CanDeleteRows() { if (_ActiveGrid == null) return (false); return (_ActiveGrid.CanDeleteRow); } #endregion #region DeleteRows private void DeleteRows(GridPanel panel, SelectedElements selRows) { BeginUpdate(); for (int i = selRows.Ranges.Count - 1; i >= 0; --i) { SelectedRange range = selRows.Ranges[i]; if (panel.VirtualMode == true) { panel.SetDeletedRows(range.StartIndex, range.Count, true); } else { for (int j = range.EndIndex; j >= range.StartIndex; --j) { GridContainer row = panel.GetRowFromIndex(j); if (row != null) row.IsDeleted = true; } } } EndUpdate(); DoRowDeletedEvent(panel, selRows); } #endregion #endregion #region ProcessShiftDeleteKey private void ProcessShiftDeleteKey() { if (_ActiveGrid != null) { if (_ActiveGrid.AllowRowDelete == true) { BeginUpdate(); SelectedElements selRows = _ActiveGrid.InternalSelectedRows.Copy(); if (DoRowRestoringEvent(_ActiveGrid, selRows) == false) { if (selRows.Count > 0) RestoreRows(_ActiveGrid, selRows); } EndUpdate(); } } else { if (DoPlayingSoundEvent(null, null, PlaySoundContext.RowUnDeleteAttempt) == false) SystemSounds.Beep.Play(); } } #region RestoreRows private void RestoreRows(GridPanel panel, SelectedElements selRows) { for (int i = selRows.Ranges.Count - 1; i >= 0; --i) { SelectedRange range = selRows.Ranges[i]; if (panel.VirtualMode == true) { panel.SetDeletedRows(range.StartIndex, range.Count, false); } else { for (int j = range.EndIndex; j >= range.StartIndex; --j) { GridContainer row = panel.GetRowFromIndex(j); if (row != null) row.IsDeleted = false; } } } DoRowRestoredEvent(panel, selRows); } #endregion #endregion #region ProcessInsertKey private void ProcessInsertKey() { ProcessInsert(0); } #endregion #region ProcessShiftInsertKey private void ProcessShiftInsertKey() { ProcessInsert(1); } #endregion #region ProcessInsert private void ProcessInsert(int offset) { if (CanInsertRow() == true) { int index = ActiveRow.RowIndex + offset; if (index >= 0) _ActiveGrid.InsertRow(index); } else { SystemSounds.Beep.Play(); } } #region CanInsertRow private bool CanInsertRow() { if (_ActiveGrid == null || _ActiveRow == null || _ActiveRow.IsDeleted == true) { return (false); } return (_ActiveGrid.CanInsertRow); } #endregion #endregion #endregion #region ProcessFilterEditKeyDown #region ProcessFilterEditKeyDown private bool ProcessFilterEditKeyDown(Keys keyData) { bool processed = true; switch (keyData) { case Keys.Enter: ExitFilterEdit(false); break; case Keys.Escape: ExitFilterEdit(true); break; case Keys.Right: ProcessFilterKeyRight(); break; case Keys.Left: ProcessFilterKeyLeft(); break; case Keys.Tab: processed = ProcessFilterTabKey(); break; case Keys.Tab | Keys.Shift: processed = ProcessFilterShiftTabKey(); break; case Keys.Down | Keys.Control: ExitFilterEdit(false); break; default: processed = false; break; } return (processed); } #region ProcessFilterKeyLeft private void ProcessFilterKeyLeft() { GridColumn column = ActiveFilterPanel.GridColumn.PrevVisibleColumn; while (column != null) { if (column.IsFilteringEnabled == true) { ActivateFilterPanel(column); break; } column = column.PrevVisibleColumn; } } #endregion #region ProcessFilterKeyRight private void ProcessFilterKeyRight() { GridColumn column = ActiveFilterPanel.GridColumn.NextVisibleColumn; while (column != null) { if (column.IsFilteringEnabled == true) { ActivateFilterPanel(column); break; } column = column.NextVisibleColumn; } } #endregion #region ActivateFilterPanel private void ActivateFilterPanel(GridColumn col) { if (col != null) { if (ActiveFilterPanel != null) ActiveFilterPanel.EndEdit(); FilterPanel fp = FilterPanel.GetFilterPanel(col); if (fp != null) fp.BeginEdit(); } } #endregion #region ExitFilterEdit private void ExitFilterEdit(bool cancel) { GridColumn column = ActiveFilterPanel.GridColumn; GridPanel panel = column.GridPanel; if (cancel == true) ActiveFilterPanel.CancelEdit(); else ActiveFilterPanel.EndEdit(); GridRow row = panel.FirstSelectableRow as GridRow; if (row != null) { if (_LastProcessedItem is GridContainer) { row.SetActive(); row.IsSelected = true; } else if (_LastProcessedItem is GridCell) { GridCell cell = GetNextRowCell(row, column.ColumnIndex); if (cell != null) { cell.SetActive(); cell.IsSelected = true; } } } } #endregion #endregion #region ProcessFilterTabKey private bool ProcessFilterTabKey() { if (_TabSelection == TabSelection.Control) return (false); ProcessFilterKeyRight(); return (true); } #endregion #region ProcessFilterShiftTabKey private bool ProcessFilterShiftTabKey() { if (_TabSelection == TabSelection.Control) return (false); ProcessFilterKeyLeft(); return (true); } #endregion #endregion #region GridWantsKey private bool GridWantsKey(Keys keyData) { switch (keyData) { case Keys.Escape: case Keys.Up | Keys.Shift: case Keys.Up: case Keys.Down: case Keys.Down | Keys.Shift: case Keys.Left: case Keys.Left | Keys.Shift: case Keys.Right: case Keys.Right | Keys.Shift: case Keys.Enter: case Keys.Tab: case Keys.Tab | Keys.Shift: return (true); } return (false); } #endregion #region DoEvent support #region ActiveGridChangedEvent /// /// Handles invocation of ActiveGridChanged events /// internal void DoActiveGridChangedEvent(GridPanel oldPanel) { if (ActiveGridChanged != null) { GridActiveGridChangedEventArgs ev = new GridActiveGridChangedEventArgs(oldPanel, _ActiveGrid); ActiveGridChanged(this, ev); } } #endregion #region CellActivatedEvent /// /// Handles invocation of CellActivated events /// internal void DoCellActivatedEvent( GridPanel gridPanel, GridCell oldCell, GridCell newCell) { if (CellActivated != null) { GridCellActivatedEventArgs ev = new GridCellActivatedEventArgs(gridPanel, oldCell, newCell); CellActivated(this, ev); } } #endregion #region CellActivatingEvent /// /// Handles invocation of CellActivating events /// internal bool DoCellActivatingEvent( GridPanel gridPanel, GridCell oldCell, GridCell newCell) { if (CellActivating != null) { GridCellActivatingEventArgs ev = new GridCellActivatingEventArgs(gridPanel, oldCell, newCell); CellActivating(this, ev); return (ev.Cancel); } return (false); } #endregion #region CellClickEvent /// /// Handles invocation of CellClick events /// internal bool DoCellClickEvent(GridCell gridCell, MouseEventArgs e) { if (CellClick != null) { GridCellClickEventArgs ev = new GridCellClickEventArgs(gridCell.GridPanel, gridCell, e); CellClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region CellDoubleClickEvent /// /// Handles invocation of CellDoubleClick events /// internal bool DoCellDoubleClickEvent(GridCell gridCell, MouseEventArgs e) { if (CellDoubleClick != null) { GridCellDoubleClickEventArgs ev = new GridCellDoubleClickEventArgs(gridCell.GridPanel, gridCell, e); CellDoubleClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region CellInfoClickEvent /// /// Handles invocation of CellInfoClick events /// internal void DoCellInfoClickEvent(GridCell gridCell, MouseEventArgs e) { if (CellInfoClick != null) { GridCellClickEventArgs ev = new GridCellClickEventArgs(gridCell.GridPanel, gridCell, e); CellInfoClick(this, ev); } } #endregion #region CellInfoDoubleClickEvent /// /// Handles invocation of CellInfoDoubleClick events /// internal void DoCellInfoDoubleClickEvent(GridCell gridCell, MouseEventArgs e) { if (CellInfoDoubleClick != null) { GridCellDoubleClickEventArgs ev = new GridCellDoubleClickEventArgs(gridCell.GridPanel, gridCell, e); CellInfoDoubleClick(this, ev); } } #endregion #region CellInfoEnterEvent /// /// Handles invocation of CellInfoEnter events /// internal bool DoCellInfoEnterEvent(GridCell gridCell, Control control, System.Windows.Forms.ToolTip toolTip, Point pt) { if (CellInfoEnter != null) { GridCellInfoEnterEventArgs ev = new GridCellInfoEnterEventArgs(gridCell.GridPanel, gridCell, control, toolTip, pt); CellInfoEnter(this, ev); return (ev.Cancel); } return (false); } #endregion #region CellInfoLeaveEvent /// /// Handles invocation of CellInfoLeave events /// internal void DoCellInfoLeaveEvent( GridCell gridCell, Control control, System.Windows.Forms.ToolTip toolTip) { if (CellInfoLeave != null) { GridCellInfoLeaveEventArgs ev = new GridCellInfoLeaveEventArgs(gridCell.GridPanel, gridCell, control, toolTip); CellInfoLeave(this, ev); } } #endregion #region CellMouseDownEvent /// /// Handles invocation of CellMouseDown events /// internal void DoCellMouseDownEvent(GridCell gridCell, MouseEventArgs args) { if (CellMouseDown != null) { GridCellMouseEventArgs ev = new GridCellMouseEventArgs(gridCell.GridPanel, gridCell, args); CellMouseDown(this, ev); } } #endregion #region CellMouseEnterEvent /// /// Handles invocation of CellMouseEnter events /// internal void DoCellMouseEnterEvent(GridCell gridCell) { if (CellMouseEnter != null) { GridCellEventArgs ev = new GridCellEventArgs(gridCell.GridPanel, gridCell); CellMouseEnter(this, ev); } } #endregion #region CellMouseLeaveEvent /// /// Handles invocation of CellMouseLeave events /// internal void DoCellMouseLeaveEvent(GridCell gridCell) { if (CellMouseLeave != null) { GridCellEventArgs ev = new GridCellEventArgs(gridCell.GridPanel, gridCell); CellMouseLeave(this, ev); } } #endregion #region CellMouseMoveEvent /// /// Handles invocation of CellMouseMove events /// internal void DoCellMouseMoveEvent(GridCell gridCell, MouseEventArgs args) { if (CellMouseMove != null) { GridCellMouseEventArgs ev = new GridCellMouseEventArgs(gridCell.GridPanel, gridCell, args); CellMouseMove(this, ev); } } #endregion #region CellMouseUpEvent /// /// Handles invocation of CellMouseUp events /// internal void DoCellMouseUpEvent(GridCell gridCell, MouseEventArgs args) { if (CellMouseUp != null) { GridCellMouseEventArgs ev = new GridCellMouseEventArgs(gridCell.GridPanel, gridCell, args); CellMouseUp(this, ev); } } #endregion #region CellUserFunctionEvent /// /// Handles invocation of CellUserFunction events /// internal void DoCellUserFunctionEvent( GridCell gridCell, object[] args, ref object result) { if (CellUserFunction != null) { GridCellUserFunctionEventArgs ev = new GridCellUserFunctionEventArgs(gridCell.GridPanel, gridCell, args, result); CellUserFunction(this, ev); result = ev.Result; } } #endregion #region CellValidatingEvent /// /// Handles invocation of CellValidating events /// internal bool DoCellValidatingEvent( GridCell gridCell, ref object value, object formattedValue) { if (CellValidating != null) { GridCellValidatingEventArgs ev = new GridCellValidatingEventArgs( gridCell.GridPanel, gridCell, value, formattedValue); CellValidating(this, ev); value = ev.Value; return (ev.Cancel); } return (false); } #endregion #region CellValidatedEvent /// /// Handles invocation of CellValidated events /// internal void DoCellValidatedEvent(GridCell gridCell) { if (CellValidated != null) { GridCellValidatedEventArgs ev = new GridCellValidatedEventArgs(gridCell.GridPanel, gridCell); CellValidated(this, ev); } } #endregion #region CellValueChangedEvent /// /// Handles invocation of CellValueChanged events /// internal void DoCellValueChangedEvent( GridCell gridCell, object oldValue, object newValue, DataContext context) { if (CellValueChanged != null) { GridCellValueChangedEventArgs ev = new GridCellValueChangedEventArgs(gridCell.GridPanel, gridCell, oldValue, newValue, context); CellValueChanged(this, ev); } } #endregion #region Check events #region AfterCheckEvent /// /// Handles invocation of AfterCheckEvent events /// internal void DoAfterCheckEvent(GridPanel gridPanel, GridElement item) { if (AfterCheck != null) { GridAfterCheckEventArgs ev = new GridAfterCheckEventArgs(gridPanel, item); AfterCheck(this, ev); } } #endregion #region BeforeCheckEvent /// /// Handles invocation of BeforeCheck events /// internal bool DoBeforeCheckEvent(GridPanel gridPanel, GridElement gridRow) { if (BeforeCheck != null) { GridBeforeCheckEventArgs ev = new GridBeforeCheckEventArgs(gridPanel, gridRow); BeforeCheck(this, ev); return (ev.Cancel); } return (false); } #endregion #endregion #region Collapse events #region AfterCollapseEvent /// /// Handles invocation of AfterCollapse events /// internal void DoAfterCollapseEvent(GridPanel gridPanel, GridContainer gridContainer, ExpandSource expandSource) { if (AfterCollapse != null) { GridAfterCollapseEventArgs ev = new GridAfterCollapseEventArgs(gridPanel, gridContainer, expandSource); AfterCollapse(this, ev); } } #endregion #region BeforeCollapseEvent /// /// Handles invocation of BeforeCollapse events /// internal bool DoBeforeCollapseEvent(GridPanel gridPanel, GridContainer gridContainer, ExpandSource expandSource) { if (BeforeCollapse != null) { GridBeforeCollapseEventArgs ev = new GridBeforeCollapseEventArgs(gridPanel, gridContainer, expandSource); BeforeCollapse(this, ev); return (ev.Cancel); } return (false); } #endregion #endregion #region Column events #region ColumnGroupedEvent /// /// Handles invocation of ColumnGrouped events /// internal void DoColumnGroupedEvent( GridPanel gridPanel, GridColumn gridColumn, GridGroup gridGroup) { if (ColumnGrouped != null) { GridColumnGroupedEventArgs ev = new GridColumnGroupedEventArgs(gridPanel, gridColumn, gridGroup); ColumnGrouped(this, ev); } } #endregion #region ColumnHeaderClickEvent /// /// Handles invocation of ColumnHeaderClick events /// internal bool DoColumnHeaderClickEvent( GridPanel gridPanel, GridColumn gridColumn, MouseEventArgs e) { if (ColumnHeaderClick != null) { GridColumnHeaderClickEventArgs ev = new GridColumnHeaderClickEventArgs(gridPanel, gridColumn, e); ColumnHeaderClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region ColumnHeaderDoubleClickEvent /// /// Handles invocation of ColumnHeaderDoubleClick events /// internal bool DoColumnHeaderDoubleClickEvent(GridColumn gridColumn, MouseEventArgs e) { if (ColumnHeaderDoubleClick != null) { GridColumnHeaderDoubleClickEventArgs ev = new GridColumnHeaderDoubleClickEventArgs(gridColumn.GridPanel, gridColumn, e); ColumnHeaderDoubleClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region ColumnHeaderMarkupLinkClick Event /// /// Handles invocation of ColumnHeaderMarkupLinkClick events /// internal void DoColumnHeaderMarkupLinkClickEvent( GridColumn gridColumn, HyperLink hyperLink) { if (ColumnHeaderMarkupLinkClick != null) { GridColumnHeaderMarkupLinkClickEventArgs ev = new GridColumnHeaderMarkupLinkClickEventArgs( gridColumn.GridPanel, gridColumn, hyperLink.Name, hyperLink.HRef); ColumnHeaderMarkupLinkClick(this, ev); } } #endregion #region ColumnHeaderMouseDownEvent /// /// Handles invocation of ColumnHeaderMouseDown events /// internal void DoColumnHeaderMouseDownEvent(GridColumnHeader gridColumnHeader, MouseEventArgs args) { if (ColumnHeaderMouseDown != null) { GridColumnHeaderMouseEventArgs ev = new GridColumnHeaderMouseEventArgs(gridColumnHeader, args); ColumnHeaderMouseDown(this, ev); } } #endregion #region ColumnHeaderMouseEnterEvent /// /// Handles invocation of ColumnHeaderMouseEnter events /// internal void DoColumnHeaderMouseEnterEvent(GridColumnHeader gridColumnHeader) { if (ColumnHeaderMouseEnter != null) { GridColumnHeaderEventArgs ev = new GridColumnHeaderEventArgs(gridColumnHeader); ColumnHeaderMouseEnter(this, ev); } } #endregion #region ColumnHeaderMouseLeaveEvent /// /// Handles invocation of ColumnHeaderMouseLeave events /// internal void DoColumnHeaderMouseLeaveEvent(GridColumnHeader gridColumnHeader) { if (ColumnHeaderMouseLeave != null) { GridColumnHeaderEventArgs ev = new GridColumnHeaderEventArgs(gridColumnHeader); ColumnHeaderMouseLeave(this, ev); } } #endregion #region ColumnHeaderMouseMoveEvent /// /// Handles invocation of ColumnHeaderMouseMove events /// internal void DoColumnHeaderMouseMoveEvent(GridColumnHeader gridColumnHeader, MouseEventArgs args) { if (ColumnHeaderMouseMove != null) { GridColumnHeaderMouseEventArgs ev = new GridColumnHeaderMouseEventArgs(gridColumnHeader, args); ColumnHeaderMouseMove(this, ev); } } #endregion #region ColumnHeaderMouseUpEvent /// /// Handles invocation of CellMouseUp events /// internal void DoColumnHeaderMouseUpEvent(GridColumnHeader gridColumnHeader, MouseEventArgs args) { if (ColumnHeaderMouseUp != null) { GridColumnHeaderMouseEventArgs ev = new GridColumnHeaderMouseEventArgs(gridColumnHeader, args); ColumnHeaderMouseUp(this, ev); } } #endregion #region ColumnGroupHeaderClickEvent /// /// Handles invocation of ColumnGroupHeaderClick events /// internal bool DoColumnGroupHeaderClickEvent(GridPanel gridPanel, GridColumnHeader header, ColumnGroupHeader groupHeader, MouseEventArgs e) { if (ColumnGroupHeaderClick != null) { GridColumnGroupHeaderClickEventArgs ev = new GridColumnGroupHeaderClickEventArgs(gridPanel, header, groupHeader, e); ColumnGroupHeaderClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region ColumnGroupHeaderDoubleClickEvent /// /// Handles invocation of ColumnGroupHeaderDoubleClick events /// internal bool DoColumnGroupHeaderDoubleClickEvent(GridPanel gridPanel, GridColumnHeader header, ColumnGroupHeader groupHeader, MouseEventArgs e) { if (ColumnGroupHeaderDoubleClick != null) { GridColumnGroupHeaderDoubleClickEventArgs ev = new GridColumnGroupHeaderDoubleClickEventArgs(gridPanel, header, groupHeader, e); ColumnGroupHeaderDoubleClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region ColumnGroupHeaderMarkupLinkClick Event /// /// Handles invocation of ColumnGroupHeaderMarkupLinkClick events /// internal void DoColumnGroupHeaderMarkupLinkClickEvent(GridPanel gridPanel, GridColumnHeader header, ColumnGroupHeader groupHeader, HyperLink hyperLink) { if (ColumnGroupHeaderMarkupLinkClick != null) { GridColumnGroupHeaderMarkupLinkClickEventArgs ev = new GridColumnGroupHeaderMarkupLinkClickEventArgs( gridPanel, header, groupHeader, hyperLink.Name, hyperLink.HRef); ColumnGroupHeaderMarkupLinkClick(this, ev); } } #endregion #region ColumnGroupHeaderResizedEvent /// /// Handles invocation of ColumnGroupHeaderResized events /// internal void DoColumnGroupHeaderResizedEvent( GridPanel gridPanel, ColumnGroupHeader groupHeader, Size oldSize) { if (ColumnGroupHeaderResized != null) { GridColumnGroupHeaderResizedEventArgs ev = new GridColumnGroupHeaderResizedEventArgs(gridPanel, groupHeader, oldSize); ColumnGroupHeaderResized(this, ev); } } #endregion #region ColumnRowHeaderClickEvent /// /// Handles invocation of ColumnRowHeaderClick events /// internal void DoColumnRowHeaderClickEvent(GridPanel gridPanel) { if (ColumnRowHeaderClick != null) { GridEventArgs ev = new GridEventArgs(gridPanel); ColumnRowHeaderClick(this, ev); } } #endregion #region ColumnRowHeaderDoubleClickEvent /// /// Handles invocation of ColumnRowHeaderDoubleClick events /// internal void DoColumnRowHeaderDoubleClickEvent(GridPanel gridPanel) { if (ColumnRowHeaderDoubleClick != null) { GridEventArgs ev = new GridEventArgs(gridPanel); ColumnRowHeaderDoubleClick(this, ev); } } #endregion #region ColumnMovedEvent /// /// Handles invocation of ColumnMoved events /// internal void DoColumnMovedEvent(GridPanel gridPanel, GridColumn gridColumn) { if (ColumnMoved != null) { GridColumnEventArgs ev = new GridColumnEventArgs(gridPanel, gridColumn); ColumnMoved(this, ev); } } #endregion #region ColumnResizedEvent /// /// Handles invocation of ColumnResized events /// internal void DoColumnResizedEvent(GridPanel gridPanel, GridColumn gridColumn) { if (ColumnResized != null) { GridColumnEventArgs ev = new GridColumnEventArgs(gridPanel, gridColumn); ColumnResized(this, ev); } } #endregion #endregion #region CompareElementsEvent /// /// Handles invocation of CompareElementsEvent events /// internal bool DoCompareElementsEvent(GridPanel panel, GridElement a, GridElement b, ref int result) { if (CompareElements != null) { GridCompareElementsEventArgs ev = new GridCompareElementsEventArgs(panel, a, b); CompareElements(this, ev); result = ev.Result; return (ev.Cancel); } return (false); } #endregion #region DataBindingStartEvent /// /// Handles invocation of DataBindingStart events /// internal bool DoDataBindingStartEvent(GridPanel gridPanel, GridRow row, string tableName, ref bool autogen, ref ProcessChildRelations crProcess) { if (DataBindingStart != null) { GridDataBindingStartEventArgs ev = new GridDataBindingStartEventArgs(gridPanel, row, tableName, autogen, crProcess); DataBindingStart(this, ev); autogen = ev.AutoGenerateColumns; crProcess = ev.ProcessChildRelations; return (ev.Cancel); } return (false); } #endregion #region DataBindingCompleteEvent /// /// Handles invocation of DataBindingComplete events /// internal void DoDataBindingCompleteEvent(GridPanel gridPanel) { if (DataBindingComplete != null) { GridDataBindingCompleteEventArgs ev = new GridDataBindingCompleteEventArgs(gridPanel); DataBindingComplete(this, ev); } } #endregion #region DataErrorEvent /// /// Handles invocation of DataError events /// internal bool DoDataErrorEvent(GridPanel gridPanel, GridCell gridCell, Exception exception, DataContext errorContext, ref object value, ref bool throwException, ref bool retry) { if (DataError != null) { GridDataErrorEventArgs ev = new GridDataErrorEventArgs(gridPanel, gridCell, exception, errorContext, value); DataError(this, ev); value = ev.Value; throwException = ev.ThrowException; retry = ev.Retry; return (ev.Cancel); } return (false); } #endregion #region DataFilteringStartEvent /// /// Handles invocation of DataFilteringStart events /// internal bool DoDataFilteringStartEvent(GridPanel gridPanel) { if (DataFilteringStart != null) { GridDataFilteringStartEventArgs ev = new GridDataFilteringStartEventArgs(gridPanel); DataFilteringStart(this, ev); return (ev.Cancel); } return (false); } #endregion #region DataFilteringCompleteEvent /// /// Handles invocation of DataFilteringCompleteEvent events /// internal void DoDataFilteringCompleteEvent(GridPanel gridPanel) { if (DataFilteringComplete != null) { GridDataFilteringCompleteEventArgs ev = new GridDataFilteringCompleteEventArgs(gridPanel); DataFilteringComplete(this, ev); } } #endregion #region ItemDragEvent /// /// Handles ItemDrag events /// internal bool DoItemDragEvent(GridElement element, MouseEventArgs e) { if (ItemDrag != null) { GridItemDragEventArgs ev = new GridItemDragEventArgs(element.GridPanel, element, e); ItemDrag(this, ev); return (ev.Cancel); } return (true); } #endregion #region Editor events #region BeginEditEvent /// /// Handles invocation of BeginEdit events /// internal bool DoBeginEditEvent( GridPanel gridPanel, GridCell cell, IGridCellEditControl editor) { if (BeginEdit != null) { GridEditEventArgs ev = new GridEditEventArgs(gridPanel, cell, editor); BeginEdit(this, ev); return (ev.Cancel); } return (false); } #endregion #region CancelEditEvent /// /// Handles invocation of CancelEdit events /// internal bool DoCancelEditEvent( GridPanel gridPanel, GridCell cell, IGridCellEditControl editor) { if (CancelEdit != null) { GridEditEventArgs ev = new GridEditEventArgs(gridPanel, cell, editor); CancelEdit(this, ev); return (ev.Cancel); } return (false); } #endregion #region CloseEdit /// /// Handles invocation of CloseEdit events /// internal void DoCloseEditEvent(GridPanel gridPanel, GridCell cell) { if (CloseEdit != null) { GridCloseEditEventArgs ev = new GridCloseEditEventArgs(gridPanel, cell); CloseEdit(this, ev); } } #endregion #region EditorValueChangedEvent /// /// Handles invocation of EditorValueChanged events /// internal void DoEditorValueChangedEvent( GridCell gridCell, IGridCellEditControl editor) { if (EditorValueChanged != null) { GridEditEventArgs ev = new GridEditEventArgs(gridCell.GridPanel, gridCell, editor); EditorValueChanged(this, ev); } } #endregion #region EndEditEvent /// /// Handles invocation of EndEdit events /// internal bool DoEndEditEvent( GridPanel gridPanel, GridCell cell, IGridCellEditControl editor) { if (EndEdit != null) { GridEditEventArgs ev = new GridEditEventArgs(gridPanel, cell, editor); EndEdit(this, ev); return (ev.Cancel); } return (false); } #endregion #region GetEditorEvent /// /// Handles invocation of GetEditor events /// internal void DoGetEditorEvent( GridPanel gridPanel, GridCell cell, ref Type type, ref object[] editorParams) { if (GetEditor != null) { GridGetEditorEventArgs ev = new GridGetEditorEventArgs(gridPanel, cell, type, editorParams); GetEditor(this, ev); if (ev.EditorType != null) type = ev.EditorType; editorParams = ev.EditorParams; } } #endregion #region GetRendererEvent /// /// Handles invocation of GetRenderer events /// internal void DoGetRendererEvent( GridPanel gridPanel, GridCell cell, ref Type type, ref object[] renderParams) { if (GetRenderer != null) { GridGetRendererEventArgs ev = new GridGetRendererEventArgs(gridPanel, cell, type, renderParams); GetRenderer(this, ev); type = ev.RenderType; renderParams = ev.RenderParams; } } #endregion #endregion #region Expand events #region AfterExpandEvent /// /// Handles invocation of AfterExpand events /// internal void DoAfterExpandEvent( GridPanel gridPanel, GridContainer container, ExpandSource expandSource) { if (AfterExpand != null) { GridAfterExpandEventArgs ev = new GridAfterExpandEventArgs(gridPanel, container, expandSource); AfterExpand(this, ev); } } #endregion #region BeforeExpandEvent /// /// Handles invocation of BeforeExpand events /// internal bool DoBeforeExpandEvent( GridPanel gridPanel, GridContainer container, ExpandSource expandSource) { if (BeforeExpand != null) { GridBeforeExpandEventArgs ev = new GridBeforeExpandEventArgs(gridPanel, container, expandSource); BeforeExpand(this, ev); return (ev.Cancel); } return (false); } #endregion #endregion #region Filter events #region FilterBeginEditEvent /// /// Handles invocation of FilterBeginEdit events /// internal bool DoFilterBeginEditEvent( GridPanel panel, GridColumn column, FilterPanel filterPanel) { if (FilterBeginEdit != null) { GridFilterBeginEditEventArgs ev = new GridFilterBeginEditEventArgs(panel, column, filterPanel); FilterBeginEdit(this, ev); return (ev.Cancel); } return (false); } #endregion #region FilterCancelEditEvent /// /// Handles invocation of FilterCancelEdit events /// internal void DoFilterCancelEditEvent(GridColumn column, FilterPanel filterPanel) { if (FilterCancelEdit != null) { GridFilterCancelEditEventArgs ev = new GridFilterCancelEditEventArgs(column.GridPanel, column, filterPanel); FilterCancelEdit(this, ev); } } #endregion #region FilterColumnErrorEvent /// /// Handles invocation of FilterColumnError events /// internal bool DoFilterColumnErrorEvent(GridPanel panel, GridRow row, GridColumn col, Exception exp, ref bool filteredOut, ref bool throwException, ref bool postError) { if (FilterColumnError != null) { GridFilterColumnErrorEventArgs ev = new GridFilterColumnErrorEventArgs( panel, row, col, exp, filteredOut, throwException, postError); FilterColumnError(this, ev); filteredOut = ev.FilteredOut; throwException = ev.ThrowException; postError = ev.PostError; return (ev.Cancel); } return (false); } #endregion #region FilterEditValueChangedEvent /// /// Handles invocation of FilterEditValueChanged events /// internal bool DoFilterEditValueChangedEvent(GridPanel panel, GridColumn column, FilterPanel fp, object oldValue, ref object newValue, ref object newDisplayValue, ref string newExpr) { if (FilterEditValueChanged != null) { GridFilterEditValueChangedEventArgs ev = new GridFilterEditValueChangedEventArgs(panel, column, fp, oldValue, newValue, newDisplayValue, newExpr); FilterEditValueChanged(this, ev); newValue = ev.NewValue; newDisplayValue = ev.NewDisplayValue; newExpr = ev.NewExpr; return (ev.Cancel); } return (false); } #endregion #region FilterEndEditEvent /// /// Handles invocation of FilterEndEdit events /// internal void DoFilterEndEditEvent(GridColumn column, FilterPanel filterPanel) { if (FilterEndEdit != null) { GridFilterEndEditEventArgs ev = new GridFilterEndEditEventArgs(column.GridPanel, column, filterPanel); FilterEndEdit(this, ev); } } #endregion #region FilterHeaderClickEvent /// /// Handles invocation of FilterHeaderClick events /// internal bool DoFilterHeaderClickEvent( GridPanel gridPanel, GridColumn gridColumn, MouseEventArgs e) { if (FilterHeaderClick != null) { GridFilterHeaderClickEventArgs ev = new GridFilterHeaderClickEventArgs(gridPanel, gridColumn, e); FilterHeaderClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region FilterHelpClosingEvent /// /// Handles invocation of FilterHelpClosing events /// internal void DoFilterHelpClosingEvent(GridPanel panel, GridColumn column, SampleExpr sampleExpr) { if (FilterHelpClosing != null) { GridFilterHelpClosingEventArgs ev = new GridFilterHelpClosingEventArgs(panel, column, sampleExpr); FilterHelpClosing(this, ev); } } #endregion #region FilterHelpOpeningEvent /// /// Handles invocation of FilterHelpOpening events /// internal bool DoFilterHelpOpeningEvent(GridPanel panel, GridColumn column, SampleExpr sampleExpr) { if (FilterHelpOpening != null) { GridFilterHelpOpeningEventArgs ev = new GridFilterHelpOpeningEventArgs(panel, column, sampleExpr); FilterHelpOpening(this, ev); return (ev.Cancel); } return (false); } #endregion #region FilterItemsLoadedEvent /// /// Handles invocation of FilterItemsLoaded events /// internal void DoFilterItemsLoadedEvent(GridColumn column, ComboBoxEx comboBox) { if (FilterItemsLoaded != null) { GridFilterItemsLoadedEventArgs ev = new GridFilterItemsLoadedEventArgs(column.GridPanel, column, comboBox); FilterItemsLoaded(this, ev); } } #endregion #region FilterLoadItemsEvent /// /// Handles invocation of FilterLoadItems events /// internal bool DoFilterLoadItemsEvent(GridColumn column, ComboBoxEx comboBox) { if (FilterLoadItems != null) { GridFilterLoadItemsEventArgs ev = new GridFilterLoadItemsEventArgs(column.GridPanel, column, comboBox); FilterLoadItems(this, ev); return (ev.Cancel); } return (false); } #endregion #region FilterLoadUserDataEvent /// /// Handles invocation of FilterLoadUserData events /// internal bool DoFilterLoadUserDataEvent( GridPanel gridPanel, ref string filterPath, ref List filterData) { if (FilterLoadUserData != null) { GridFilterLoadUserDataEventArgs ev = new GridFilterLoadUserDataEventArgs(gridPanel, filterPath, filterData); FilterLoadUserData(this, ev); filterPath = ev.FilterPath; filterData = ev.FilterData; return (ev.Cancel); } return (false); } #endregion #region FilterPopupClosingEvent /// /// Handles invocation of FilterPopupClosing events /// internal void DoFilterPopupClosingEvent(GridColumn column, FilterPopup filterPopup) { if (FilterPopupClosing != null) { GridFilterPopupClosingEventArgs ev = new GridFilterPopupClosingEventArgs(column.GridPanel, column, filterPopup); FilterPopupClosing(this, ev); } } #endregion #region FilterPopupLoadEvent /// /// Handles invocation of FilterPopupLoad events /// internal bool DoFilterPopupLoadEvent(GridColumn column, FilterPopup filterPopup) { if (FilterPopupLoad != null) { GridFilterPopupLoadEventArgs ev = new GridFilterPopupLoadEventArgs(column.GridPanel, column, filterPopup); FilterPopupLoad(this, ev); return (ev.Cancel); } return (false); } #endregion #region FilterPopupLoadedEvent /// /// Handles invocation of FilterPopupLoaded events /// internal void DoFilterPopupLoadedEvent(GridColumn column, FilterPopup filterPopup) { if (FilterPopupLoaded != null) { GridFilterPopupLoadedEventArgs ev = new GridFilterPopupLoadedEventArgs(column.GridPanel, column, filterPopup); FilterPopupLoaded(this, ev); } } #endregion #region FilterPopupOpeningEvent /// /// Handles invocation of FilterPopupOpening events /// internal bool DoFilterPopupOpeningEvent(GridColumn column, FilterPopup filterPopup) { if (FilterPopupOpening != null) { GridFilterPopupOpeningEventArgs ev = new GridFilterPopupOpeningEventArgs(column.GridPanel, column, filterPopup); FilterPopupOpening(this, ev); return (ev.Cancel); } return (false); } #endregion #region FilterPopupValueChangedEvent /// /// Handles invocation of FilterPopupValueChanged events /// internal bool DoFilterPopupValueChangedEvent(GridColumn column, FilterItemType filterItemType, ref object filterValue, ref object filterDisplayValue, ref string filterExpr) { if (FilterPopupValueChanged != null) { GridFilterPopupValueChangedEventArgs ev = new GridFilterPopupValueChangedEventArgs(column.GridPanel, column, filterItemType, filterValue, filterDisplayValue, filterExpr); FilterPopupValueChanged(this, ev); filterValue = ev.FilterValue; filterDisplayValue = ev.FilterDisplayValue; filterExpr = ev.FilterExpr; return (ev.Cancel); } return (false); } #endregion #region FilterRowErrorEvent /// /// Handles invocation of FilterRowError events /// internal bool DoFilterRowErrorEvent(GridPanel panel, GridRow row, Exception exp, ref bool filteredOut, ref bool throwException, ref bool postError) { if (FilterRowError != null) { GridFilterRowErrorEventArgs ev = new GridFilterRowErrorEventArgs( panel, row, exp, filteredOut, throwException, postError); FilterRowError(this, ev); filteredOut = ev.FilteredOut; throwException = ev.ThrowException; postError = ev.PostError; return (ev.Cancel); } return (false); } #endregion #region FilterRowHeaderClickEvent /// /// Handles invocation of FilterRowHeaderClick events /// internal bool DoFilterRowHeaderClickEvent(GridPanel gridPanel) { if (FilterRowHeaderClick != null) { GridCancelEventArgs ev = new GridCancelEventArgs(gridPanel); FilterRowHeaderClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region FilterStoreUserDataEvent /// /// Handles invocation of FilterStoreUserData events /// internal bool DoFilterStoreUserDataEvent( GridPanel gridPanel, ref string filterPath, ref List filterData) { if (FilterStoreUserData != null) { GridFilterStoreUserDataEventArgs ev = new GridFilterStoreUserDataEventArgs(gridPanel, filterPath, filterData); FilterStoreUserData(this, ev); filterPath = ev.FilterPath; filterData = ev.FilterData; return (ev.Cancel); } return (false); } #endregion #region FilterUserFunctionEvent /// /// Handles invocation of FilterUserFunction events /// internal bool DoFilterUserFunctionEvent( GridRow gridRow, object[] args, ref object result) { if (FilterUserFunction != null) { GridFilterUserFunctionEventArgs ev = new GridFilterUserFunctionEventArgs(gridRow.GridPanel, gridRow, args, result); FilterUserFunction(this, ev); if (ev.Handled == true) { result = ev.Result; return (true); } } return (false); } #endregion #region GetFilterColumnHeaderStyleEvent /// /// Handles invocation of GetFilterColumnHeaderStyle events /// internal void DoGetFilterColumnHeaderStyleEvent( GridColumn gridColumn, StyleType eStyle, ref FilterColumnHeaderVisualStyle style) { if (GetFilterColumnHeaderStyle != null) { GridGetFilterColumnHeaderStyleEventArgs ev = new GridGetFilterColumnHeaderStyleEventArgs(gridColumn.GridPanel, gridColumn, eStyle, style); GetFilterColumnHeaderStyle(this, ev); style = ev.Style; } } #endregion #region GetFilterEditTypeEvent /// /// Handles invocation of GetFilterEditType events /// internal void DoGetFilterEditTypeEvent( GridColumn gridColumn, ref FilterEditType filterType) { if (GetFilterEditType != null) { GridGetFilterEditTypeEventArgs ev = new GridGetFilterEditTypeEventArgs(gridColumn.GridPanel, gridColumn, filterType); GetFilterEditType(this, ev); filterType = ev.FilterEditType; } } #endregion #region GetFilterRowStyleEvent /// /// Handles invocation of GetFilterRowStyle events /// internal void DoGetFilterRowStyleEvent( GridFilter gridFilter, StyleType eStyle, ref FilterRowVisualStyle style) { if (GetFilterRowStyle != null) { GridGetFilterRowStyleEventArgs ev = new GridGetFilterRowStyleEventArgs(gridFilter.GridPanel, gridFilter, eStyle, style); GetFilterRowStyle(this, ev); style = ev.Style; } } #endregion #endregion #region GetCellRangesEvent /// /// Handles invocation of GetCellRanges events /// internal bool DoGetCellRangesEvent( GridContainer gridContainer, DisplayRange displayRange, ref List cellRanges) { if (GetCellRanges != null) { GridGetCellRangesEventArgs ev = new GridGetCellRangesEventArgs(gridContainer.GridPanel, gridContainer, displayRange, cellRanges); GetCellRanges(this, ev); cellRanges = ev.CellRanges; return (ev.Cancel); } return (false); } #endregion #region GetCellFormattedValueEvent /// /// Handles invocation of GetCellFormattedValue events /// internal void DoGetCellFormattedValueEvent( GridCell gridCell, ref string formattedValue, ref CellSizingSource sizingSource) { if (GetCellFormattedValue != null) { GridGetCellFormattedValueEventArgs ev = new GridGetCellFormattedValueEventArgs(gridCell.GridPanel, gridCell, formattedValue, sizingSource); GetCellFormattedValue(this, ev); formattedValue = ev.FormattedValue; sizingSource = ev.SizingSource; } } #endregion #region GetCellRangeFormattedValueEvent /// /// Handles invocation of GetCellRangeFormattedValue events /// internal void DoGetCellRangeFormattedValueEvent( GridContainer gridContainer, CellRange cellRange, ref string formattedValue) { if (GetCellRangeFormattedValue != null) { GridGetCellRangeFormattedValueEventArgs ev = new GridGetCellRangeFormattedValueEventArgs(gridContainer.GridPanel, gridContainer, cellRange, formattedValue); GetCellRangeFormattedValue(this, ev); formattedValue = ev.FormattedValue; } } #endregion #region GetCellStyleEvent /// /// Handles invocation of GetCellStyle events /// internal void DoGetCellStyleEvent( GridCell gridCell, StyleType eStyle, ref CellVisualStyle style) { if (GetCellStyle != null) { GridGetCellStyleEventArgs ev = new GridGetCellStyleEventArgs(gridCell.GridPanel, gridCell, eStyle, style); GetCellStyle(this, ev); style = ev.Style; } } #endregion #region GetCellToolTipEvent /// /// Handles invocation of GetCellToolTipEvent events /// internal bool DoGetCellToolTipEvent( GridPanel panel, GridCell gridCell, ref string toolTip) { if (GetCellToolTip != null) { GridGetCellToolTipEventArgs ev = new GridGetCellToolTipEventArgs(panel, gridCell, toolTip); GetCellToolTip(this, ev); toolTip = ev.ToolTip; return (ev.Cancel); } return (false); } #endregion #region GetCellValueEvent /// /// Handles invocation of GetCellValue events /// internal void DoGetCellValueEvent(GridCell gridCell, ref object value) { if (GetCellValue != null) { GridGetCellValueEventArgs ev = new GridGetCellValueEventArgs(gridCell.GridPanel, gridCell, value); GetCellValue(this, ev); value = ev.Value; } } #endregion #region GetColumnGroupHeaderToolTipEvent /// /// Handles invocation of GetColumnGroupHeaderToolTip events /// internal bool DoGetColumnGroupHeaderToolTipEvent(GridPanel panel, ColumnGroupHeader groupHeader, HeaderArea hitArea, ref string toolTip) { if (GetColumnGroupHeaderToolTip != null) { GridGetColumnGroupHeaderToolTipEventArgs ev = new GridGetColumnGroupHeaderToolTipEventArgs(panel, groupHeader, hitArea, toolTip); GetColumnGroupHeaderToolTip(this, ev); toolTip = ev.ToolTip; return (ev.Cancel); } return (false); } #endregion #region GetColumnGroupHeaderStyleEvent /// /// Handles invocation of GetColumnGroupHeader events /// internal void DoGetColumnGroupHeaderStyleEvent(GridPanel panel, ColumnGroupHeader cgh, StyleType eStyle, ref ColumnHeaderVisualStyle style) { if (GetColumnGroupHeaderStyle != null) { GridGetColumnGroupHeaderStyleEventArgs ev = new GridGetColumnGroupHeaderStyleEventArgs(panel, cgh, eStyle, style); GetColumnGroupHeaderStyle(this, ev); style = ev.Style; } } #endregion #region GetColumnHeaderRowHeaderStyleEvent /// /// Handles invocation of GetColumnHeader RowHeader events /// internal void DoGetColumnHeaderRowHeaderStyleEvent( GridColumnHeader columnHeader, StyleType eStyle, ref ColumnHeaderRowVisualStyle style) { if (GetColumnHeaderRowHeaderStyle != null) { GridGetColumnHeaderRowHeaderStyleEventArgs ev = new GridGetColumnHeaderRowHeaderStyleEventArgs(columnHeader.GridPanel, columnHeader, eStyle, style); GetColumnHeaderRowHeaderStyle(this, ev); style = ev.Style; } } #endregion #region GetColumnHeaderStyleEvent /// /// Handles invocation of GetColumnHeader events /// internal void DoGetColumnHeaderStyleEvent( GridColumn gridColumn, StyleType eStyle, ref ColumnHeaderVisualStyle style) { if (GetColumnHeaderStyle != null) { GridGetColumnHeaderStyleEventArgs ev = new GridGetColumnHeaderStyleEventArgs(gridColumn.GridPanel, gridColumn, eStyle, style); GetColumnHeaderStyle(this, ev); style = ev.Style; } } #endregion #region GetColumnHeaderToolTipEvent /// /// Handles invocation of GetColumnHeaderToolTip events /// internal bool DoGetColumnHeaderToolTipEvent(GridPanel panel, GridColumn gridColumn, HeaderArea hitArea, ref string toolTip) { if (GetColumnHeaderToolTip != null) { GridGetColumnHeaderToolTipEventArgs ev = new GridGetColumnHeaderToolTipEventArgs(panel, gridColumn, hitArea, toolTip); GetColumnHeaderToolTip(this, ev); toolTip = ev.ToolTip; return (ev.Cancel); } return (false); } #endregion #region GetDisplayRangesEvent /// /// Handles invocation of GetDisplayRanges events /// internal void DoGetDisplayRangesEvent( GridContainer gridContainer, ref List displayRanges) { if (GetDisplayRanges != null) { GridGetDisplayRangesEventArgs ev = new GridGetDisplayRangesEventArgs(gridContainer.GridPanel, gridContainer, displayRanges); GetDisplayRanges(this, ev); displayRanges = ev.DisplayRanges; } } #endregion #region ConfigureGroupBox /// /// Handles invocation of ConfigureGroupBox events /// internal void DoConfigureGroupBoxEvent( GridGroupByRow groupByRow, GridGroupBox gridGroupBox) { if (ConfigureGroupBox != null) { GridConfigureGroupBoxEventArgs ev = new GridConfigureGroupBoxEventArgs(groupByRow.GridPanel, groupByRow, gridGroupBox); ConfigureGroupBox(this, ev); } } #endregion #region GetGroupedDetailRowsEvent /// /// Handles invocation of GetGroupedDetailRows events /// internal bool DoGetGroupedDetailRowsEvent(GridPanel gridPanel, GridColumn gridColumn, GridGroup gridGroup, out List preRows, out List postRows) { if (GetGroupDetailRows != null) { GridGetGroupDetailRowsEventArgs ev = new GridGetGroupDetailRowsEventArgs(gridPanel, gridColumn, gridGroup); GetGroupDetailRows(this, ev); preRows = ev.PreDetailRows; postRows = ev.PostDetailRows; return (true); } preRows = null; postRows = null; return (false); } #endregion #region GetGroupHeaderStyleEvent /// /// Handles invocation of GetGroupHeaderStyle events /// internal void DoGetGroupHeaderStyleEvent( GridGroup gridRow, StyleType eStyle, ref GroupHeaderVisualStyle style) { if (GetGroupHeaderStyle != null) { GridGetGroupHeaderStyleEventArgs ev = new GridGetGroupHeaderStyleEventArgs(gridRow.GridPanel, gridRow, eStyle, style); GetGroupHeaderStyle(this, ev); style = ev.Style; } } #endregion #region GetGroupIdEvent /// /// Handles invocation of GetGroupId events /// internal void DoGetGroupIdEvent( GridElement row, GridColumn column, ref object groupId) { if (GetGroupId != null) { GridGetGroupIdEventArgs ev = new GridGetGroupIdEventArgs(row.GridPanel, row, column, groupId); GetGroupId(this, ev); groupId = ev.GroupId ?? ""; } } #endregion #region GetMergedCellStyleEvent /// /// Handles invocation of GetMergedCellStyle events /// internal void DoGetMergedCellStyleEvent(GridPanel panel, CellRange cellRange, StyleType eStyle, ref CellVisualStyle style) { if (GetMergedCellStyle != null) { GridGetMergedCellStyleEventArgs ev = new GridGetMergedCellStyleEventArgs(panel, cellRange, eStyle, style); GetMergedCellStyle(this, ev); style = ev.Style; } } #endregion #region GetPanelStyleEvent /// /// Handles invocation of GetPanelStyle events /// internal void DoGetPanelStyleEvent( GridPanel gridPanel, ref GridPanelVisualStyle style) { if (GetPanelStyle != null) { GridGetPanelStyleEventArgs ev = new GridGetPanelStyleEventArgs(gridPanel, style); GetPanelStyle(this, ev); style = ev.Style; } } #endregion #region GetRowCellStyleEvent /// /// Handles invocation of GetRowCellStyle events /// internal void DoGetRowCellStyleEvent( GridContainer gridRow, StyleType eStyle, ref CellVisualStyle style) { if (GetRowCellStyle != null) { GridGetRowCellStyleEventArgs ev = new GridGetRowCellStyleEventArgs(gridRow.GridPanel, gridRow, eStyle, style); GetRowCellStyle(this, ev); style = ev.Style; } } #endregion #region GetRowHeaderStyleEvent /// /// Handles invocation of GetRowHeader events /// internal void DoGetRowHeaderStyleEvent( GridContainer gridRow, StyleType eStyle, ref RowHeaderVisualStyle style) { if (GetRowHeaderStyle != null) { GridGetRowHeaderStyleEventArgs ev = new GridGetRowHeaderStyleEventArgs(gridRow.GridPanel, gridRow, eStyle, style); GetRowHeaderStyle(this, ev); style = ev.Style; } } #endregion #region GetRowStyleEvent /// /// Handles invocation of GetRowStyle events /// internal void DoGetRowStyleEvent( GridContainer gridRow, StyleType eStyle, ref RowVisualStyle style) { if (GetRowStyle != null) { GridGetRowStyleEventArgs ev = new GridGetRowStyleEventArgs(gridRow.GridPanel, gridRow, eStyle, style); GetRowStyle(this, ev); style = ev.Style; } } #endregion #region GetRowHeaderTextEvent /// /// Handles invocation of GetRowHeaderText events /// internal void DoGetRowHeaderTextEvent(GridContainer row, ref string text) { if (GetRowHeaderText != null) { GridGetRowHeaderTextEventArgs ev = new GridGetRowHeaderTextEventArgs(row.GridPanel, row, text); GetRowHeaderText(this, ev); text = ev.Text; } } #endregion #region GetTextRowStyleEvent /// /// Handles invocation of GetTextRowStyle events /// internal void DoGetTextRowStyleEvent( GridTextRow gridTextRow, StyleType eStyle, ref TextRowVisualStyle style) { if (GetTextRowStyle != null) { GridGetTextRowStyleEventArgs ev = new GridGetTextRowStyleEventArgs(gridTextRow.GridPanel, gridTextRow, eStyle, style); GetTextRowStyle(this, ev); style = ev.Style; } } #endregion #region GridPreviewKeyDown private bool DoGridPreviewKeyDown(Keys keyData) { if (GridPreviewKeyDown != null) { GridPreviewKeyDownEventArgs args = new GridPreviewKeyDownEventArgs(keyData | ModifierKeys); args.IsInputKey = _IsInputKey; GridPreviewKeyDown(this, args); _IsInputKey = args.IsInputKey; return (args.Handled); } return (false); } #endregion #region GroupChangedEvent /// /// Handles invocation of GroupChanged events /// internal void DoGroupChangedEvent( GridPanel gridPanel, GroupChangedAction action, GridColumn gridColumn) { if (GroupChanged != null) { GridGroupChangedEventArgs ev = new GridGroupChangedEventArgs(gridPanel, action, gridColumn); GroupChanged(this, ev); } } #endregion #region GroupHeaderClickEvent /// /// Handles invocation of GroupHeaderClick events /// internal bool DoGroupHeaderClickEvent(GridGroup group, GroupArea area, MouseEventArgs e) { if (GroupHeaderClick != null) { GridGroupHeaderClickEventArgs ev = new GridGroupHeaderClickEventArgs(group.GridPanel, group, area, e); GroupHeaderClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region GroupHeaderDoubleClickEvent /// /// Handles invocation of GroupHeaderDoubleClick events /// internal bool DoGroupHeaderDoubleClickEvent(GridGroup group, GroupArea area, MouseEventArgs e) { if (GroupHeaderDoubleClick != null) { GridGroupHeaderDoubleClickEventArgs ev = new GridGroupHeaderDoubleClickEventArgs(group.GridPanel, group, area, e); GroupHeaderDoubleClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region GroupSortingEvent /// /// Handles invocation of GroupSorting events /// internal bool DoGroupSortingEvent(GridPanel panel) { if (GroupSorting != null) { GridCancelEventArgs ev = new GridCancelEventArgs(panel); GroupSorting(this, ev); return (ev.Cancel); } return (false); } #endregion #region GroupSortedEvent /// /// Handles invocation of GroupSorted events /// internal void DoGroupSortedEvent(GridPanel panel) { if (GroupSorted != null) { GridEventArgs ev = new GridEventArgs(panel); GroupSorted(this, ev); } } #endregion #region InitEditContext /// /// Handles invocation of InitEditContext events /// internal void DoInitEditContextEvent( GridCell gridCell, IGridCellEditControl editControl) { if (InitEditContext != null) { GridInitEditContextEventArgs ev = new GridInitEditContextEventArgs(gridCell.GridPanel, gridCell, editControl); InitEditContext(this, ev); } } #endregion #region LayoutOrderUpdatingEvent /// /// Handles invocation of LayoutOrderUpdating events /// internal bool DoLayoutOrderUpdatingEvent(GridPanel panel) { if (LayoutOrderUpdating != null) { GridCancelEventArgs ev = new GridCancelEventArgs(panel); LayoutOrderUpdating(this, ev); return (ev.Cancel); } return (false); } #endregion #region LayoutOrderUpdatedEvent /// /// Handles invocation of LayoutOrderUpdated events /// internal void DoLayoutOrderUpdatedEvent(GridPanel panel) { if (LayoutOrderUpdated != null) { GridEventArgs ev = new GridEventArgs(panel); LayoutOrderUpdated(this, ev); } } #endregion #region NoRowsMarkupLinkClick Event /// /// Handles invocation of NoRowsTextMarkupLinkClick events /// internal void DoNoRowsMarkupLinkClickEvent( GridPanel gridPanel, HyperLink hyperLink) { if (NoRowsMarkupLinkClick != null) { GridNoRowsMarkupLinkClickEventArgs ev = new GridNoRowsMarkupLinkClickEventArgs( gridPanel, hyperLink.Name, hyperLink.HRef); NoRowsMarkupLinkClick(this, ev); } } #endregion #region PlayingSoundEvent /// /// Handles invocation of PlayingSound Events /// internal bool DoPlayingSoundEvent( GridPanel panel, object item, PlaySoundContext context) { if (PlayingSound != null) { GridPlayingSoundEventArgs ev = new GridPlayingSoundEventArgs(panel, item, context); PlayingSound(this, ev); return (ev.Cancel); } return (false); } #endregion #region PreviewKeyDown private void DoPreviewKeyDown(Keys keyData) { if (PreviewKeyDown != null) { PreviewKeyDownEventArgs args = new PreviewKeyDownEventArgs(keyData); args.IsInputKey = _IsInputKey; PreviewKeyDown(this, args); _IsInputKey = args.IsInputKey; } } #endregion #region RefreshFilter internal bool DoRefreshFilter(GridPanel panel) { if (RefreshFilter != null) { GridRefreshFilterEventArgs args = new GridRefreshFilterEventArgs(panel); RefreshFilter(this, args); return (args.Cancel); } return (false); } #endregion #region Render events #region PostRenderCellEvent /// /// Handles invocation of PostRenderCell events /// internal void DoPostRenderCellEvent(Graphics g, GridCell gridCell, RenderParts parts, Rectangle bounds) { if (PostRenderCell != null) { GridPostRenderCellEventArgs ev = new GridPostRenderCellEventArgs(g, gridCell.GridPanel, gridCell, parts, bounds); PostRenderCell(this, ev); } } #endregion #region PreRenderCellEvent /// /// Handles invocation of PreRenderCell events /// internal bool DoPreRenderCellEvent(Graphics g, GridCell gridCell, RenderParts parts, Rectangle bounds) { if (PreRenderCell != null) { GridPreRenderCellEventArgs ev = new GridPreRenderCellEventArgs(g, gridCell.GridPanel, gridCell, parts, bounds); PreRenderCell(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderColumnHeaderEvent /// /// Handles invocation of PostRenderColumnHeader events /// internal void DoPostRenderColumnHeaderEvent(Graphics g, GridColumnHeader header, GridColumn column, RenderParts parts, Rectangle bounds) { if (PostRenderColumnHeader != null) { GridPanel panel = header.GridPanel; GridPostRenderColumnHeaderEventArgs ev = new GridPostRenderColumnHeaderEventArgs(g, panel, header, column, parts, bounds); PostRenderColumnHeader(this, ev); } } #endregion #region PreRenderColumnHeaderEvent /// /// Handles invocation of PreRenderColumnHeaderEvent events /// internal bool DoPreRenderColumnHeaderEvent(Graphics g, GridColumnHeader header, GridColumn column, RenderParts parts, Rectangle bounds) { if (PreRenderColumnHeader != null) { GridPanel panel = header.GridPanel; GridPreRenderColumnHeaderEventArgs ev = new GridPreRenderColumnHeaderEventArgs(g, panel, header, column, parts, bounds); PreRenderColumnHeader(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderColumnGroupHeaderEvent /// /// Handles invocation of PostRenderColumnGroupHeader events /// internal void DoPostRenderColumnGroupHeaderEvent(Graphics g, GridColumnHeader header, ColumnGroupHeader groupHeader, RenderParts parts, Rectangle bounds) { if (PostRenderColumnGroupHeader != null) { GridPanel panel = header.GridPanel; GridPostRenderColumnGroupHeaderEventArgs ev = new GridPostRenderColumnGroupHeaderEventArgs(g, panel, header, groupHeader, parts, bounds); PostRenderColumnGroupHeader(this, ev); } } #endregion #region PreRenderColumnGroupHeaderEvent /// /// Handles invocation of PreRenderColumnGroupHeader events /// internal bool DoPreRenderColumnGroupHeaderEvent(Graphics g, GridColumnHeader header, ColumnGroupHeader groupHeader, RenderParts parts, Rectangle bounds) { if (PreRenderColumnGroupHeader != null) { GridPanel panel = header.GridPanel; GridPreRenderColumnGroupHeaderEventArgs ev = new GridPreRenderColumnGroupHeaderEventArgs(g, panel, header, groupHeader, parts, bounds); PreRenderColumnGroupHeader(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderFilterPopupGripBarEvent /// /// Handles invocation of PostRenderFilterPopupGripBar events /// internal void DoPostRenderFilterPopupGripBarEvent( Graphics g, FilterPopup filterPopup, GridColumn gridColumn, Rectangle bounds) { if (PostRenderFilterPopupGripBar != null) { GridPostRenderFilterPopupGripBarEventArgs ev = new GridPostRenderFilterPopupGripBarEventArgs(g, filterPopup, gridColumn, bounds); PostRenderFilterPopupGripBar(this, ev); } } #endregion #region PreRenderFilterPopupGripBarEvent /// /// Handles invocation of PreRenderFilterPopupGripBar events /// internal bool DoPreRenderFilterPopupGripBarEvent( Graphics g, FilterPopup filterPopup, GridColumn gridColumn, Rectangle bounds) { if (PreRenderFilterPopupGripBar != null) { GridPreRenderFilterPopupGripBarEventArgs ev = new GridPreRenderFilterPopupGripBarEventArgs(g, filterPopup, gridColumn, bounds); PreRenderFilterPopupGripBar(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderFilterRowEvent /// /// Handles invocation of PostRenderFilterRow events /// internal void DoPostRenderFilterRowEvent(Graphics g, GridFilter filter, GridColumn column, RenderParts parts, Rectangle bounds) { if (PostRenderFilterRow != null) { GridPanel panel = filter.GridPanel; GridPostRenderFilterRowEventArgs ev = new GridPostRenderFilterRowEventArgs(g, panel, filter, column, parts, bounds); PostRenderFilterRow(this, ev); } } #endregion #region PreRenderFilterRowEvent /// /// Handles invocation of PreRenderFilterRowEvent events /// internal bool DoPreRenderFilterRowEvent(Graphics g, GridFilter filter, GridColumn column, RenderParts parts, Rectangle bounds) { if (PreRenderFilterRow != null) { GridPanel panel = filter.GridPanel; GridPreRenderFilterRowEventArgs ev = new GridPreRenderFilterRowEventArgs(g, panel, filter, column, parts, bounds); PreRenderFilterRow(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderGroupBoxConnectorEvent /// /// Handles invocation of PostRenderGroupBoxConnector events /// internal void DoPostRenderGroupBoxConnectorEvent(Graphics g, GridGroupByRow groupByRow, GridGroupBox box1, GridGroupBox box2) { if (PostRenderGroupBoxConnector != null) { GridPostRenderGroupBoxConnectorEventArgs ev = new GridPostRenderGroupBoxConnectorEventArgs(g, groupByRow.GridPanel, groupByRow, box1, box2); PostRenderGroupBoxConnector(this, ev); } } #endregion #region PreRenderGroupBoxConnectorEvent /// /// Handles invocation of PreRenderGroupBoxConnector events /// internal bool DoPreRenderGroupBoxConnectorEvent(Graphics g, GridGroupByRow groupByRow, GridGroupBox box1, GridGroupBox box2) { if (PreRenderGroupBoxConnector != null) { GridPreRenderGroupBoxConnectorEventArgs ev = new GridPreRenderGroupBoxConnectorEventArgs(g, groupByRow.GridPanel, groupByRow, box1, box2); PreRenderGroupBoxConnector(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderGroupBoxEvent /// /// Handles invocation of PostRenderGroupBox events /// internal void DoPostRenderGroupBoxEvent(Graphics g, GridGroupByRow groupByRow, GridGroupBox box, RenderParts parts, Rectangle bounds) { if (PostRenderGroupBox != null) { GridPostRenderGroupBoxEventArgs ev = new GridPostRenderGroupBoxEventArgs(g, groupByRow.GridPanel, groupByRow, box, parts, bounds); PostRenderGroupBox(this, ev); } } #endregion #region PreRenderGroupBoxEvent /// /// Handles invocation of PreRenderGroupBox events /// internal bool DoPreRenderGroupBoxEvent(Graphics g, GridGroupByRow groupByRow, GridGroupBox box, RenderParts parts, Rectangle bounds) { if (PreRenderGroupBox != null) { GridPreRenderGroupBoxEventArgs ev = new GridPreRenderGroupBoxEventArgs(g, groupByRow.GridPanel, groupByRow, box, parts, bounds); PreRenderGroupBox(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderGroupHeaderEvent /// /// Handles invocation of PostRenderGroupHeader events /// internal void DoPostRenderGroupHeaderEvent( Graphics g, GridGroup gridGroup, RenderParts parts, Rectangle bounds) { if (PostRenderGroupHeader != null) { GridPanel panel = gridGroup.GridPanel; GridPostRenderRowEventArgs ev = new GridPostRenderRowEventArgs(g, panel, gridGroup, parts, bounds); PostRenderGroupHeader(this, ev); } } #endregion #region PreRenderGroupHeaderEvent /// /// Handles invocation of PreRenderGroupHeader events /// internal bool DoPreRenderGroupHeaderEvent( Graphics g, GridGroup gridGroup, RenderParts parts, Rectangle bounds) { if (PreRenderGroupHeader != null) { GridPanel panel = gridGroup.GridPanel; GridPreRenderRowEventArgs ev = new GridPreRenderRowEventArgs(g, panel, gridGroup, parts, bounds); PreRenderGroupHeader(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderPanelRowEvent /// /// Handles invocation of PostRenderPanelRow events /// internal void DoPostRenderPanelRowEvent( Graphics g, GridContainer gridRow, RenderParts parts, Rectangle bounds) { if (PostRenderPanelRow != null) { GridPostRenderRowEventArgs ev = new GridPostRenderRowEventArgs(g, gridRow.GridPanel, gridRow, parts, bounds); PostRenderPanelRow(this, ev); } } #endregion #region PreRenderPanelRowEvent /// /// Handles invocation of PreRenderPanelRow events /// internal bool DoPreRenderPanelRowEvent( Graphics g, GridContainer gridRow, RenderParts parts, Rectangle bounds) { if (PreRenderPanelRow != null) { GridPreRenderRowEventArgs ev = new GridPreRenderRowEventArgs(g, gridRow.GridPanel, gridRow, parts, bounds); PreRenderPanelRow(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderRowEvent /// /// Handles invocation of PostRenderRow events /// internal void DoPostRenderRowEvent( Graphics g, GridRow gridRow, RenderParts parts, Rectangle bounds) { if (PostRenderRow != null) { GridPostRenderRowEventArgs ev = new GridPostRenderRowEventArgs(g, gridRow.GridPanel, gridRow, parts, bounds); PostRenderRow(this, ev); } } #endregion #region PreRenderRowEvent /// /// Handles invocation of PreRenderRow events /// internal bool DoPreRenderRowEvent(Graphics g, GridRow gridRow, RenderParts parts, Rectangle bounds) { if (PreRenderRow != null) { GridPreRenderRowEventArgs ev = new GridPreRenderRowEventArgs(g, gridRow.GridPanel, gridRow, parts, bounds); PreRenderRow(this, ev); return (ev.Cancel); } return (false); } #endregion #region PostRenderTextRowEvent /// /// Handles invocation of PostRenderTextRow events /// internal void DoPostRenderTextRowEvent( Graphics g, GridTextRow gridTextRow, RenderParts parts, Rectangle bounds) { if (PostRenderTextRow != null) { GridPostRenderTextRowEventArgs ev = new GridPostRenderTextRowEventArgs(g, gridTextRow.GridPanel, gridTextRow, parts, bounds); PostRenderTextRow(this, ev); } } #endregion #region PreRenderTextRowEvent /// /// Handles invocation of PreRenderTextRow events /// internal bool DoPreRenderTextRowEvent(Graphics g, GridTextRow gridTextRow, RenderParts parts, Rectangle bounds) { if (PreRenderTextRow != null) { GridPreRenderTextRowEventArgs ev = new GridPreRenderTextRowEventArgs(g, gridTextRow.GridPanel, gridTextRow, parts, bounds); PreRenderTextRow(this, ev); return (ev.Cancel); } return (false); } #endregion #endregion #region Row events #region RowLoadedEvent /// /// Handles invocation of RowLoaded events /// internal void DoRowLoadedEvent(GridPanel panel, GridRow row) { if (RowLoaded != null) { GridRowLoadedEventArgs ev = new GridRowLoadedEventArgs(panel, row); RowLoaded(this, ev); } } #endregion #region RowActivatedEvent /// /// Handles invocation of RowActivated events /// internal void DoRowActivatedEvent( GridPanel gridPanel, GridContainer oldRow, GridContainer newRow) { if (RowActivated != null) { GridRowActivatedEventArgs ev = new GridRowActivatedEventArgs(gridPanel, oldRow, newRow); RowActivated(this, ev); } } #endregion #region RowActivatingEvent /// /// Handles invocation of RowActivating events /// internal bool DoRowActivatingEvent( GridPanel panel, GridContainer orow, GridContainer nrow) { if (RowActivating != null) { GridRowActivatingEventArgs ev = new GridRowActivatingEventArgs(panel, orow, nrow); RowActivating(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowAddedEvent /// /// Handles invocation of RowAdded events /// internal void DoRowAddedEvent(GridPanel panel, int index) { if (RowAdded != null) { GridRowAddedEventArgs ev = new GridRowAddedEventArgs(panel, index); RowAdded(this, ev); } } #endregion #region RowAddingEvent /// /// Handles invocation of DoRowAdding events /// internal bool DoRowAddingEvent(GridPanel panel, ref int index) { if (RowAdding != null) { GridRowAddingEventArgs ev = new GridRowAddingEventArgs(panel, index); RowAdding(this, ev); index = ev.Index; return (ev.Cancel); } return (false); } #endregion #region RowClickEvent /// /// Handles invocation of RowClick events /// internal bool DoRowClickEvent(GridRow row, RowArea rowArea, MouseEventArgs e) { if (RowClick != null) { GridRowClickEventArgs ev = new GridRowClickEventArgs(row.GridPanel, row, rowArea, e); RowClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowDeletedEvent /// /// Handles invocation of RowDeleted events /// internal void DoRowDeletedEvent(GridPanel panel, SelectedElements selRows) { if (RowDeleted != null) { GridRowDeletedEventArgs ev = new GridRowDeletedEventArgs(panel, selRows); RowDeleted(this, ev); } } #endregion #region RowDeletingEvent /// /// Handles invocation of RowDeleting events /// internal bool DoRowDeletingEvent(GridPanel panel, SelectedElements selRows) { if (RowDeleting != null) { GridRowDeletingEventArgs ev = new GridRowDeletingEventArgs(panel, selRows); RowDeleting(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowDoubleClickEvent /// /// Handles invocation of RowDoubleClick events /// internal bool DoRowDoubleClickEvent(GridRow row, RowArea rowArea, MouseEventArgs e) { if (RowDoubleClick != null) { GridRowDoubleClickEventArgs ev = new GridRowDoubleClickEventArgs(row.GridPanel, row, rowArea, e); RowDoubleClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowGetDetailHeightEvent /// /// Handles invocation of RowGetDetailHeight events /// internal void DoRowGetDetailHeightEvent(GridRow row, GridLayoutInfo layoutInfo, Size sizeNeeded, ref int preHeight, ref int postHeight) { if (GetDetailRowHeight != null) { GridGetDetailRowHeightEventArgs ev = new GridGetDetailRowHeightEventArgs(row.GridPanel, row, layoutInfo, sizeNeeded, preHeight, postHeight); GetDetailRowHeight(this, ev); preHeight = ev.PreDetailHeight; postHeight = ev.PostDetailHeight; } } #endregion #region RowHeaderClickEvent /// /// Handles invocation of RowHeaderClick events /// internal void DoRowHeaderClickEvent( GridPanel gridPanel, GridContainer row, MouseEventArgs e) { if (RowHeaderClick != null) { GridRowHeaderClickEventArgs ev = new GridRowHeaderClickEventArgs(gridPanel, row, e); RowHeaderClick(this, ev); } } #endregion #region RowHeaderDoubleClickEvent /// /// Handles invocation of RowHeaderDoubleClick events /// internal bool DoRowHeaderDoubleClickEvent(GridContainer row, MouseEventArgs e) { if (RowHeaderDoubleClick != null) { GridRowHeaderDoubleClickEventArgs ev = new GridRowHeaderDoubleClickEventArgs(row.GridPanel, row, e); RowHeaderDoubleClick(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowHeaderResizedEvent /// /// Handles invocation of RowHeaderResized events /// internal void DoRowHeaderResizedEvent(GridPanel gridPanel) { if (RowHeaderResized != null) { GridEventArgs ev = new GridEventArgs(gridPanel); RowHeaderResized(this, ev); } } #endregion #region RowInfoClickEvent /// /// Handles invocation of RowInfoClick events /// internal void DoRowInfoClickEvent(GridRow gridRow, MouseEventArgs e) { if (RowInfoClick != null) { GridRowClickEventArgs ev = new GridRowClickEventArgs(gridRow.GridPanel, gridRow, RowArea.InRowInfo, e); RowInfoClick(this, ev); } } #endregion #region RowInfoEnterEvent /// /// Handles invocation of RowInfoEnter events /// internal bool DoRowInfoEnterEvent(GridRow gridRow, Point pt) { if (RowInfoEnter != null) { GridRowInfoEnterEventArgs ev = new GridRowInfoEnterEventArgs(gridRow.GridPanel, gridRow, pt); RowInfoEnter(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowInfoLeaveEvent /// /// Handles invocation of RowInfoLeave events /// internal void DoRowInfoLeaveEvent(GridRow gridRow) { if (RowInfoLeave != null) { GridRowInfoLeaveEventArgs ev = new GridRowInfoLeaveEventArgs(gridRow.GridPanel, gridRow); RowInfoLeave(this, ev); } } #endregion #region RowInfoDoubleClickEvent /// /// Handles invocation of RowInfoDoubleClick events /// internal void DoRowInfoDoubleClickEvent(GridRow gridRow, MouseEventArgs e) { if (RowInfoDoubleClick != null) { GridRowDoubleClickEventArgs ev = new GridRowDoubleClickEventArgs(gridRow.GridPanel, gridRow, RowArea.InRowInfo, e); RowInfoDoubleClick(this, ev); } } #endregion #region RowMarkedDirtyEvent /// /// Handles invocation of RowMarkedDirty events /// internal bool DoRowMarkedDirtyEvent( GridCell gridCell, IGridCellEditControl editor) { if (RowMarkedDirty != null) { GridEditEventArgs ev = new GridEditEventArgs(gridCell.GridPanel, gridCell, editor); RowMarkedDirty(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowMouseDownEvent /// /// Handles invocation of RowMouseDown events /// internal void DoRowMouseDownEvent( GridRow gridRow, MouseEventArgs args, RowArea area) { if (RowMouseDown != null) { GridRowMouseEventArgs ev = new GridRowMouseEventArgs(gridRow.GridPanel, gridRow, args, area); RowMouseDown(this, ev); } } #endregion #region RowMouseEnterEvent /// /// Handles invocation of RowMouseEnter events /// internal void DoRowMouseEnterEvent(GridRow gridRow) { if (RowMouseEnter != null) { GridRowEventArgs ev = new GridRowEventArgs(gridRow.GridPanel, gridRow); RowMouseEnter(this, ev); } } #endregion #region RowMouseLeaveEvent /// /// Handles invocation of RowMouseLeave events /// internal void DoRowMouseLeaveEvent(GridRow gridRow) { if (RowMouseLeave != null) { GridRowEventArgs ev = new GridRowEventArgs(gridRow.GridPanel, gridRow); RowMouseLeave(this, ev); } } #endregion #region RowMouseMoveEvent /// /// Handles invocation of RowMouseMove events /// internal void DoRowMouseMoveEvent(GridRow gridRow, MouseEventArgs args, RowArea area) { if (RowMouseMove != null) { GridRowMouseEventArgs ev = new GridRowMouseEventArgs(gridRow.GridPanel, gridRow, args, area); RowMouseMove(this, ev); } } #endregion #region RowMouseUpEvent /// /// Handles invocation of RowMouseUp events /// internal void DoRowMouseUpEvent(GridRow gridRow, MouseEventArgs args, RowArea area) { if (RowMouseUp != null) { GridRowMouseEventArgs ev = new GridRowMouseEventArgs(gridRow.GridPanel, gridRow, args, area); RowMouseUp(this, ev); } } #endregion #region RowMovedEvent /// /// Handles invocation of RowMoved events /// internal void DoRowMovedEvent( GridPanel gridPanel, GridContainer gridContainer, GridContainer gridRow) { if (RowMoved != null) { GridRowMovedEventArgs ev = new GridRowMovedEventArgs(gridPanel, gridContainer, gridRow); RowMoved(this, ev); } } #endregion #region RowMovingEvent /// /// Handles invocation of RowMoving events /// internal bool DoRowMovingEvent(GridRow gridRow, GridContainer srcCont, int srcIndex, ref GridContainer destCont, ref int destIndex) { if (RowMoving != null) { GridRowMovingEventArgs ev = new GridRowMovingEventArgs( gridRow.GridPanel, gridRow, srcCont, srcIndex, destCont, destIndex); RowMoving(this, ev); destIndex = ev.DestIndex; destCont = ev.DestContainer; return (ev.Cancel); } return (false); } #endregion #region RowResizedEvent /// /// Handles invocation of RowResized events /// internal void DoRowResizedEvent(GridPanel gridPanel, GridContainer gridRow) { if (RowResized != null) { GridRowEventArgs ev = new GridRowEventArgs(gridPanel, gridRow); RowResized(this, ev); } } #endregion #region RowRestoredEvent /// /// Handles invocation of RowRestored events /// internal void DoRowRestoredEvent(GridPanel panel, SelectedElements selRows) { if (RowRestored != null) { GridRowRestoredEventArgs ev = new GridRowRestoredEventArgs(panel, selRows); RowRestored(this, ev); } } #endregion #region RowRestoringEvent /// /// Handles invocation of RowRestoring events /// internal bool DoRowRestoringEvent(GridPanel panel, SelectedElements selRows) { if (RowRestoring != null) { GridRowRestoringEventArgs ev = new GridRowRestoringEventArgs(panel, selRows); RowRestoring(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowSetDefaultValuesEvent /// /// Handles invocation of RowSetDefaultValues events /// internal void DoRowSetDefaultValuesEvent( GridPanel panel, GridRow row, NewRowContext context) { if (RowSetDefaultValues != null) { GridRowSetDefaultValuesEventArgs ev = new GridRowSetDefaultValuesEventArgs(panel, row, context); bool loading = row.Loading; row.Loading = true; try { RowSetDefaultValues(this, ev); } finally { row.Loading = loading; } } } #endregion #region RowsGroupedEvent /// /// Handles invocation of RowsGroupedEvent events /// internal void DoRowsGroupedEvent(GridPanel panel) { if (RowsGrouped != null) { GridEventArgs ev = new GridEventArgs(panel); RowsGrouped(this, ev); } } #endregion #region RowsGroupingEvent /// /// Handles invocation of RowsGrouping events /// internal bool DoRowsGroupingEvent(GridPanel panel) { if (RowsGrouping != null) { GridCancelEventArgs ev = new GridCancelEventArgs(panel); RowsGrouping(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowsPurgingEvent /// /// Handles invocation of RowsPurging events /// internal bool DoRowsPurgingEvent(GridContainer row, ref bool includeNestedRows) { if (RowsPurging != null) { GridRowsPurgingEventArgs ev = new GridRowsPurgingEventArgs(row.GridPanel, row, includeNestedRows); RowsPurging(this, ev); includeNestedRows = ev.IncludeNestedRows; return (ev.Cancel); } return (false); } #endregion #region RowsPurgedEvent /// /// Handles invocation of RowsPurged events /// internal void DoRowsPurgedEvent(GridContainer row) { if (RowsPurged != null) { GridRowEventArgs ev = new GridRowEventArgs(row.GridPanel, row); RowsPurged(this, ev); } } #endregion #region RowsSortingEvent /// /// Handles invocation of RowsSorting events /// internal bool DoRowsSortingEvent(GridPanel panel) { if (RowsSorting != null) { GridCancelEventArgs ev = new GridCancelEventArgs(panel); RowsSorting(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowsSortedEvent /// /// Handles invocation of RowsSortedEvent events /// internal void DoRowsSortedEvent(GridPanel panel) { if (RowsSorted != null) { GridEventArgs ev = new GridEventArgs(panel); RowsSorted(this, ev); } } #endregion #region RowValidatingEvent /// /// Handles invocation of RowValidating events /// internal bool DoRowValidatingEvent(GridRow gridRow) { if (RowValidating != null) { GridRowValidatingEventArgs ev = new GridRowValidatingEventArgs(gridRow.GridPanel, gridRow); RowValidating(this, ev); return (ev.Cancel); } return (false); } #endregion #region RowValidatedEvent /// /// Handles invocation of RowValidated events /// internal void DoRowValidatedEvent(GridRow gridRow) { if (RowValidated != null) { GridRowValidatedEventArgs ev = new GridRowValidatedEventArgs(gridRow.GridPanel, gridRow); RowValidated(this, ev); } } #endregion #endregion #region ScrollEvent /// /// Handles invocation of Scroll events /// internal void DoScrollEvent(GridPanel gridPanel, ScrollEventArgs args, ScrollBarAdv sbar) { if (Scroll != null) { GridScrollEventArgs ev = new GridScrollEventArgs(gridPanel, args); Scroll(this, ev); } if (args.Type == ScrollEventType.EndScroll) { if (args.NewValue == 0) DoScrollMinEvent(gridPanel, args); else if (args.NewValue + sbar.LargeChange >= sbar.Maximum) DoScrollMaxEvent(gridPanel, args); } } #endregion #region ScrollMinEvent /// /// Handles invocation of ScrollMin events /// internal void DoScrollMinEvent(GridPanel gridPanel, ScrollEventArgs args) { if (ScrollMin != null) { GridScrollEventArgs ev = new GridScrollEventArgs(gridPanel, args); ScrollMin(this, ev); } } #endregion #region ScrollMaxEvent /// /// Handles invocation of ScrollMax events /// internal void DoScrollMaxEvent(GridPanel gridPanel, ScrollEventArgs args) { if (ScrollMax != null) { GridScrollEventArgs ev = new GridScrollEventArgs(gridPanel, args); ScrollMax(this, ev); } } #endregion #region SelectionChanged Event /// /// Handles invocation of SelectionChanged events /// internal void DoSelectionChangedEvent(GridPanel gridPanel) { if (SelectionChanged != null) { GridEventArgs ev = new GridEventArgs(gridPanel); SelectionChanged(this, ev); } } #endregion #region SelectionChanging Event /// /// Handles invocation of SelectionChanging events /// internal bool DoSelectionChangingEvent(GridPanel gridPanel, ref SelectedElements selectedElements, int index, int count, bool selected) { if (SelectionChanging != null) { GridSelectionChangingEventArgs ev = new GridSelectionChangingEventArgs(gridPanel, selectedElements, index, count, selected); SelectionChanging(this, ev); selectedElements = ev.SelectedElements; return (ev.Cancel); } return (false); } #endregion #region SortChanged Event /// /// Handles invocation of SortChanged events /// internal void DoSortChangedEvent(GridPanel gridPanel) { if (SortChanged != null) { GridEventArgs ev = new GridEventArgs(gridPanel); SortChanged(this, ev); } } #endregion #region TextRowClickEvent /// /// Handles invocation of TextRowClick events /// internal void DoTextRowClickEvent(GridTextRow textRow, MouseEventArgs e) { if (TextRowClick != null) { GridTextRowEventArgs ev = new GridTextRowEventArgs(textRow.GridPanel, textRow, e); TextRowClick(this, ev); } } #endregion #region TextRowHeaderClickEvent /// /// Handles invocation of TextRowHeaderClick events /// internal void DoTextRowHeaderClickEvent(GridTextRow textRow, MouseEventArgs e) { if (TextRowHeaderClick != null) { GridTextRowEventArgs ev = new GridTextRowEventArgs(textRow.GridPanel, textRow, e); TextRowHeaderClick(this, ev); } } #endregion #region TextRowMarkupLinkClickEvent /// /// Handles invocation of TextRowMarkupLinkClick events /// internal void DoTextRowMarkupLinkClickEvent( GridTextRow textRow, HyperLink hyperLink) { if (TextRowMarkupLinkClick != null) { GridTextRowMarkupLinkClickEventArgs ev = new GridTextRowMarkupLinkClickEventArgs( textRow.GridPanel, textRow, hyperLink.Name, hyperLink.HRef); TextRowMarkupLinkClick(this, ev); } } #endregion #region UpdateCellDisplayRangesEvent /// /// Handles invocation of UpdateCellDisplayRanges events /// internal void DoUpdateCellDisplayRangesEvent( GridContainer gridContainer, DisplayRange displayRange, ref List cellRanges) { if (UpdateCellDisplayRanges != null) { GridUpdateCellDisplayRangesEventArgs ev = new GridUpdateCellDisplayRangesEventArgs(gridContainer.GridPanel, gridContainer, displayRange, cellRanges); UpdateCellDisplayRanges(this, ev); cellRanges = ev.CellRanges; } } #endregion #region Virtual Row events #region DoLoadVirtualRowEvent /// /// Handles invocation of LoadVirtualRow events /// internal void DoLoadVirtualRowEvent(GridPanel panel, GridRow row) { if (LoadVirtualRow != null) { GridVirtualRowEventArgs ev = new GridVirtualRowEventArgs(panel, row, row.Index); LoadVirtualRow(this, ev); } } #endregion #region DoVirtualRowLoadedEvent /// /// Handles invocation of VirtualRowed events /// internal void DoVirtualRowLoadedEvent(GridPanel panel, GridRow row) { if (VirtualRowLoaded != null) { GridVirtualRowEventArgs ev = new GridVirtualRowEventArgs(panel, row, row.Index); VirtualRowLoaded(this, ev); } } #endregion #region DoStoreVirtualRowEvent /// /// Handles invocation of StoreVirtualRow events /// internal void DoStoreVirtualRowEvent(GridPanel gridPanel, GridRow gridRow) { if (StoreVirtualRow != null) { GridVirtualRowEventArgs ev = new GridVirtualRowEventArgs(gridPanel, gridRow, gridRow.Index); StoreVirtualRow(this, ev); } } #endregion #endregion #endregion #region GetElementAt /// /// Gets the GridElement at the given coordinates /// /// /// public GridElement GetElementAt(Point pt) { return (GetElementAt(pt.X, pt.Y)); } /// /// Gets the GridElement at the given coordinates /// /// /// /// public GridElement GetElementAt(int x, int y) { GridElement item = _PrimaryGrid.GetElementAt(x, y); if (item == null) return (_PrimaryGrid); while (item is GridContainer) { GridElement subItem = ((GridContainer) item).GetElementAt(x, y); if (subItem == null) break; item = subItem; } return (item); } #endregion #region FindGridPanel /// /// Finds the defined GridPanel with the given Name. /// Nested GridPanels will not be searched. /// ///GridPanel or null public GridPanel FindGridPanel(string name) { return (FindGridPanel(name, false)); } /// /// Finds the defined GridPanel with the given Name. /// If 'includeNested' is true, then nested GridPanels /// will also be searched. /// /// public GridPanel FindGridPanel(string name, bool includeNested) { if (_PrimaryGrid != null) { if (_PrimaryGrid.Name != null && _PrimaryGrid.Name.Equals(name) == true) return (_PrimaryGrid); return (_PrimaryGrid.FindGridPanel(name, includeNested)); } return (null); } #endregion #region GetSelectedElements /// /// This routine returns a SelectedElementCollection, /// containing a list of the currently selected elements. /// ///SelectedElementCollection public SelectedElementCollection GetSelectedElements() { SelectedElementCollection items = _PrimaryGrid.GetSelectedElements(); GetSelectedElements(_PrimaryGrid, items); return (items); } private void GetSelectedElements( GridContainer container, SelectedElementCollection items) { foreach (GridElement item in container.Rows) { if (item.Visible == true) { GridContainer citem = item as GridContainer; if (citem != null) { GridPanel panel = citem as GridPanel; if (panel != null) { if (panel.VirtualMode == false) panel.GetSelectedElements(items); } if (citem.Rows.Count > 0) GetSelectedElements(citem, items); } } } } #endregion #region GetSelectedRows /// /// This routine returns a SelectedElementCollection, /// containing a list of the currently selected rows. /// ///SelectedElementCollection public SelectedElementCollection GetSelectedRows() { SelectedElementCollection items = _PrimaryGrid.GetSelectedRows(); GetSelectedRows(_PrimaryGrid, items); return (items); } private void GetSelectedRows( GridContainer container, ICollection items) { foreach (GridElement item in container.Rows) { if (item.Visible == true) { GridContainer citem = item as GridContainer; if (citem != null) { GridPanel panel = citem as GridPanel; if (panel != null) { if (panel.VirtualMode == false) panel.GetSelectedRows(items); } if (citem.Rows.Count > 0) GetSelectedRows(citem, items); } } } } #endregion #region GetSelectedColumns /// /// This routine returns a SelectedElementCollection, /// containing a list of the currently selected columns. /// ///SelectedElementCollection public SelectedElementCollection GetSelectedColumns() { SelectedElementCollection items = _PrimaryGrid.GetSelectedColumns(); GetSelectedColumns(_PrimaryGrid, items); return (items); } private void GetSelectedColumns(GridContainer container, ICollection items) { foreach (GridElement item in container.Rows) { if (item.Visible == true) { GridContainer citem = item as GridContainer; if (citem != null) { GridPanel panel = citem as GridPanel; if (panel != null) { if (panel.VirtualMode == false) panel.GetSelectedColumns(items); } if (citem.Rows.Count > 0) GetSelectedColumns(citem, items); } } } } #endregion #region GetSelectedCells /// /// This routine returns a SelectedElementCollection, /// containing a list of the currently selected cells. /// ///SelectedElementCollection public SelectedElementCollection GetSelectedCells() { SelectedElementCollection items = _PrimaryGrid.GetSelectedCells(); GetSelectedCells(_PrimaryGrid, items); return (items); } private void GetSelectedCells(GridContainer container, SelectedElementCollection items) { foreach (GridElement item in container.Rows) { if (item.Visible == true) { GridContainer citem = item as GridContainer; if (citem != null) { GridPanel panel = citem as GridPanel; if (panel != null) { if (panel.VirtualMode == false) panel.GetSelectedCells(items); } if (citem.Rows.Count > 0) GetSelectedCells(citem, items); } } } } #endregion #region GetCell /// /// Gets the GridCell for the given /// row and column index of the PrimaryGrid /// /// /// ///GridCell, or null if not a valid cell public GridCell GetCell(int rowIndex, int columnIndex) { return (PrimaryGrid.GetCell(rowIndex, columnIndex)); } /// /// Gets the GridCell for the given /// row and column index of the given GridPanel /// /// /// /// ///GridCell, or null if not a valid cell public GridCell GetCell(GridPanel panel, int rowIndex, int columnIndex) { return (panel.GetCell(rowIndex, columnIndex)); } #endregion #region AutoScrolling support #region EnableAutoScrolling internal void EnableAutoScrolling( AutoScrollEnable enable, Rectangle scrollRect) { if (Focused == true) { _AutoScrollEnable = enable; if ((_HScrollBar != null && _HScrollBar.Visible == true) || (_VScrollBar != null && _VScrollBar.Visible == true)) { _ScrollRect = scrollRect; if (_AutoScrollTimer == null) { _AutoScrollTimer = new Timer(); _AutoScrollTimer.Interval = 10; _AutoScrollTimer.Tick += AutoScrollTimerTick; _AutoScrollTimer.Start(); } } } } #endregion #region DisableAutoScrolling internal void DisableAutoScrolling() { if (_AutoScrollTimer != null) { _AutoScrollTimer.Stop(); _AutoScrollTimer.Tick -= AutoScrollTimerTick; _AutoScrollTimer = null; } } #endregion #region AutoScrollTimerTick private void AutoScrollTimerTick(object sender, EventArgs e) { Point pt = PointToClient(Cursor.Position); Rectangle t = _ScrollRect; if ((_AutoScrollEnable & AutoScrollEnable.Horizontal) == AutoScrollEnable.Horizontal && (_HScrollBar != null && _HScrollBar.Visible == true)) { int dx = (pt.X < t.X) ? ScrollAmount(pt.X - t.X) : (pt.X >= t.Right) ? ScrollAmount(pt.X - t.Right) : 0; SetHScrollValue(_HScrollOffset + dx); } if ((_AutoScrollEnable & AutoScrollEnable.Vertical) == AutoScrollEnable.Vertical && (_VScrollBar != null && _VScrollBar.Visible == true)) { int dy = (pt.Y < t.Top) ? ScrollAmount(pt.Y - t.Top) : (pt.Y >= t.Bottom) ? ScrollAmount(pt.Y - t.Bottom) : 0; SetVScrollValue(_VScrollOffset + dy); } } #endregion #region ScrollAmount private int ScrollAmount(int delta) { int n = Math.Abs(delta); int amt = 1 << ((n / 16) + 1); return (delta < 0 ? -amt : amt); } #endregion #endregion #region PostInternalMouseMove internal void PostInternalMouseMove() { _PostMouseMove = true; } #endregion #region UpdateInternalMouseMove internal void UpdateInternalMouseMove() { if (_PostMouseMove == true) { _PostMouseMove = false; Cursor.Position = Cursor.Position; } } #endregion #region Cursor /// /// Cursor /// public override Cursor Cursor { get { return base.Cursor; } set { base.Cursor = value; if (SetGridCursor == true) GridCursor = value; else _DefaultCursor = value; } } #endregion #region OnGotFocus /// /// OnGotFocus /// /// protected override void OnGotFocus(EventArgs e) { base.OnGotFocus(e); if (_ActiveRow != null) _ActiveRow.InvalidateRender(); } #endregion #region OnLostFocus /// /// OnLostFocus /// /// protected override void OnLostFocus(EventArgs e) { CancelCapture(); if (_ActiveRow != null) _ActiveRow.InvalidateRender(); base.OnLostFocus(e); } #endregion #region OnResize /// /// OnResize /// /// protected override void OnResize(EventArgs e) { base.OnResize(e); if (_PrimaryGrid != null) { _PrimaryGrid.InvalidateLayout(); _PrimaryGrid.ContainerBounds = ClientRectangle; } } #endregion #region OnValidating /// /// OnValidating /// /// protected override void OnValidating(CancelEventArgs e) { if (_ActiveRow != null && _ActiveRow.GridPanel != null) { if (_ActiveRow.GridPanel.SetActiveRow(null, false) == false) { e.Cancel = true; return; } } base.OnValidating(e); } #endregion #region Update support /// /// Calling the BeginUpdate routine informs the grid /// that an extended update phase has begun. The SuperGrid /// will suspend all layout calculations and display updates /// until the corresponding EndUpdate routine is called. /// /// BeginUpdate / EndUpdate can be nested and must be /// called in pairs – every BeginUpdate must have a /// matching EndUpdate call. /// public void BeginUpdate() { _BeginUpdateCount++; } /// /// Calling the EndUpdate routine informs the grid /// that an extended update phase has ended. /// /// BeginUpdate / EndUpdate can be nested and must be /// called in pairs – every EndUpdate must have a /// matching BeginUpdate call. /// public void EndUpdate() { if (_BeginUpdateCount > 0) { if (--_BeginUpdateCount == 0) _PrimaryGrid.InvalidateMerge(); } } #endregion #region INotifyPropertyChanged Members /// /// Occurs when property value has changed. /// public event PropertyChangedEventHandler PropertyChanged; /// /// Raises the PropertyChanged event. /// /// Event arguments protected virtual void OnPropertyChanged(PropertyChangedEventArgs e) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, e); } /// /// Default PropertyChanged processing /// /// protected void OnPropertyChanged(string s) { if (PropertyChanged != null) OnPropertyChanged(new PropertyChangedEventArgs(s)); } #endregion #region IMessageFilter Members /// /// PreFilterMessage /// /// /// public bool PreFilterMessage(ref Message m) { if (DesignMode == true || Enabled == false) return (false); if (ContainsFocus == true || m.Msg == WmMouseDown || m.Msg == WmMouseWheel) { switch (m.Msg) { case WmKeyDown: TrackModifiers(); if (_KeyPressSent == true) { _KeyPressSent = false; } else { _IsInputKey = false; Keys keyData = (Keys) (int) m.WParam & Keys.KeyCode; if (DoGridPreviewKeyDown(keyData) == true) return (true); keyData |= ModifierKeys; _LastKeyDown = keyData; if (_ActiveEditor != null && _EditorCell != null) return (ProcessInEditKeyDown(keyData)); if (_ActiveFilterPanel != null) return (ProcessInFilterEditKeyDown(keyData)); } return (false); case WmKeyUp: TrackModifiers(); UpdateInternalMouseMove(); break; case WmMouseDown: if (IsOverNonModalEditorWindow() == true) { Focus(); ExtendNonModalSelection(); } break; case WmMouseWheel: if (CanProcessMouseWheel() == true) { if ((LoWord(m.WParam) & 0x8) == 0) { if (_VScrollBar.Visible == true) { Rectangle r = DisplayRectangle; r.Location = PointToScreen(r.Location); Point mousePos = new Point(LoWord(m.LParam), HiWord(m.LParam)); if (r.Contains(mousePos)) { short detents = (short)HiWord(m.WParam); int delta = (detents / SystemInformation.MouseWheelScrollDelta); MouseWheelHandler(delta); return (true); } } } } break; } } if (_ActiveNonModalEditor != null) { switch (m.Msg) { case WmMouseMove: if (IsOverNonModalEditorWindow() == false) { if (_ActiveNonModalEditor.CanInterrupt == true) DeactivateNonModalEditor(); } break; } } return (false); } #region CanProcessMouseWheel [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern IntPtr WindowFromPoint(Point pnt); private bool CanProcessMouseWheel() { IntPtr hWnd = WindowFromPoint(Control.MousePosition); if (hWnd != IntPtr.Zero) { Control ctl = Control.FromHandle(hWnd); if (ctl == null || ctl.FindForm() != FindForm()) return (false); } if (_ActiveEditor == null && _ActiveFilterPanel == null) { if (_ActiveNonModalEditor != null) { if (_ActiveNonModalEditor.CanInterrupt == false) return (false); } return (true); } return (false); } #endregion #region HiWord / LoWord private int LoWord(int n) { return (short)(n & 0xffff); } private int HiWord(int n) { return (n >> 0x10); } private int LoWord(IntPtr n) { return LoWord((int)((long)n)); } private int HiWord(IntPtr n) { return HiWord((int)((long)n)); } #endregion #region TrackModifiers private void TrackModifiers() { if ((_LastModifierKeys & Keys.Control) != (ModifierKeys & Keys.Control)) { _LastModifierKeys = ModifierKeys; Cursor.Position = Cursor.Position; } } #endregion #region IsOverNonModalEditorWindow private bool IsOverNonModalEditorWindow() { if (_ActiveNonModalEditor != null) { Point pt = MousePosition; if (NonModalEditorCell.GridColumn != null) { Rectangle r = NonModalEditorCell.CellBounds; r.Location = PointToScreen(r.Location); bool hit = r.Contains(pt); return (hit); } } return (false); } #endregion #endregion #region WndProc /// /// WndProc /// /// protected override void WndProc(ref Message m) { switch (m.Msg) { case WmSetFocus: if (_PopupControl != null) _PopupControl.Hide(); break; } base.WndProc(ref m); } #endregion #region ActivateNonModalEditor internal void ActivateNonModalEditor( IGridCellEditControl editor, GridCell cell) { ActiveNonModalEditor = editor; NonModalEditorCell = cell; } #endregion #region DeactivateNonModalEditor /// /// Deactivates any active NonModal editor. /// public void DeactivateNonModalEditor() { if (_ActiveNonModalEditor != null) { _ActiveNonModalEditor.EditorPanel.Hide(); _ActiveNonModalEditor.OnCellMouseLeave(EventArgs.Empty); if (_NonModalEditorCell.GridPanel != null) { _NonModalEditorCell.GridPanel.InternalMouseMove(new MouseEventArgs(MouseButtons.None, 0, -1, -1, 0)); if (_NonModalEditorCell.GridPanel.SelectionGranularity != SelectionGranularity.Cell) _NonModalEditorCell.GridRow.InvalidateRender(); else _NonModalEditorCell.InvalidateRender(); } if (_NonModalEditorCell.SuperGrid.ContainsFocus == true) Focus(); _ActiveNonModalEditor = null; _NonModalEditorCell = null; } } #region ExtendNonModalSelection /// /// ExtendNonModalSelection /// internal void ExtendNonModalSelection() { GridPanel panel = _NonModalEditorCell.GridPanel; if (panel != null) { GridCell cell = _NonModalEditorCell; GridRow row = cell.GridRow; panel.SetActiveRow(row, true); switch (panel.SelectionGranularity) { case SelectionGranularity.Row: case SelectionGranularity.RowWithCellHighlight: row.ExtendSelection(panel); break; case SelectionGranularity.Cell: cell.ExtendSelection(panel); if (_ActiveNonModalEditor != null) cell.PositionEditPanel(_ActiveNonModalEditor); break; } } } #endregion #endregion #region UpdateStyleCount internal int UpdateStyleCount() { StyleUpdateCount++; return (StyleUpdateCount); } #endregion #region CancelCapture /// /// Cancels any in-progress operations that /// may have the mouse captured (and releases the capture). /// public void CancelCapture() { if (_CapturedItem != null) _CapturedItem.CancelCapture(); } #endregion #region Dispose /// /// Dispose /// /// protected override void Dispose(bool disposing) { EndWorkers(); Application.RemoveMessageFilter(this); StyleManager.Unregister(this); PrimaryGrid.Dispose(); if (_VScrollBar != null) { _VScrollBar.Scroll -= VScrollBarScroll; _VScrollBar.MouseEnter -= ScrollBarMouseEnter; _VScrollBar.SizeChanged -= ScrollBarSizeChanged; } if (_HScrollBar != null) { _HScrollBar.Scroll -= HScrollBarScroll; _HScrollBar.MouseEnter -= ScrollBarMouseEnter; _HScrollBar.SizeChanged -= ScrollBarSizeChanged; } base.Dispose(disposing); } private int _WorkerCount; internal bool DisposeRequested; private List _Threads = new List(); internal void BeginWorker(Thread thread) { Interlocked.Increment(ref _WorkerCount); _Threads.Add(thread); } internal void EndWorker(Thread thread) { Interlocked.Decrement(ref _WorkerCount); _Threads.Remove(thread); } private void EndWorkers() { DisposeRequested = true; foreach (Thread th in _Threads) th.Abort(); for (int i = 0; _WorkerCount > 0 && i < 500; i++) { Thread.Sleep(10); Application.DoEvents(); } } #endregion #region Licensing #if !TRIAL private string _LicenseKey = ""; /// /// LicenseKey /// [Browsable(false), DefaultValue("")] public string LicenseKey { get { return _LicenseKey; } set { if (NativeFunctions.ValidateLicenseKey(value)) return; _LicenseKey = (!NativeFunctions.CheckLicenseKey(value) ? "9dsjkhds7" : value); } } #endif #endregion #region Touch Handling private Touch.TouchHandler _TouchHandler; private bool _TouchEnabled = true; /// /// Indicates whether touch support for scrolling is enabled. /// [DefaultValue(true), Category("Behavior")] [Description("Indicates whether touch support for scrolling is enabled.")] public bool TouchEnabled { get { return _TouchEnabled; } set { if (value != _TouchEnabled) { bool oldValue = _TouchEnabled; _TouchEnabled = value; OnTouchEnabledChanged(oldValue, value); } } } /// /// Called when TouchEnabled property has changed. /// /// Old property value /// New property value protected virtual void OnTouchEnabledChanged(bool oldValue, bool newValue) { //OnPropertyChanged(new PropertyChangedEventArgs("TouchEnabled")); } //private int TriggerPageChangeOffset //{ // get { return 32; } //} private int MaximumReversePageOffset { get { return 0; } //Math.Min(32, this.Width / 6); } private bool _TouchDrag; private Point _TouchStartLocation = Point.Empty; private Point _TouchStartScrollPosition = Point.Empty; private Rectangle _TouchInnerBounds = Rectangle.Empty; private void TouchHandlerPanBegin(object sender, Touch.GestureEventArgs e) { if (_TouchEnabled) { _TouchInnerBounds = SViewRect; _TouchStartLocation = e.Location; _TouchStartScrollPosition = AutoScrollPosition; _TouchDrag = true; e.Handled = true; } } private void TouchHandlerPanEnd(object sender, Touch.GestureEventArgs e) { if (_TouchDrag) { EndTouchPan(); e.Handled = true; } } private Point AutoScrollPosition { get { return new Point(-_HScrollOffset, -_VScrollOffset); } set { if (value.X != _HScrollOffset) SetHScrollValue(-value.X); if (value.Y != _VScrollOffset) SetVScrollValue(-value.Y); } } private void EndTouchPan() { _TouchDrag = false; Point autoScrollPosition = AutoScrollPosition; Size autoScrollMinSize = new Size(_HScrollBar.Maximum, _VScrollBar.Maximum); if (autoScrollMinSize.Width > _TouchInnerBounds.Width) { if (autoScrollMinSize.Width - _TouchInnerBounds.Width < -autoScrollPosition.X) autoScrollPosition = new Point(autoScrollMinSize.Width - _TouchInnerBounds.Width, autoScrollPosition.Y); else if (-autoScrollPosition.X < 0) autoScrollPosition = new Point(0, autoScrollPosition.Y); } if (autoScrollMinSize.Height > _TouchInnerBounds.Height) { if (autoScrollMinSize.Height - _TouchInnerBounds.Height < -autoScrollPosition.Y) autoScrollPosition = new Point(autoScrollPosition.X, autoScrollMinSize.Height - _TouchInnerBounds.Height); else if (-autoScrollPosition.Y < 0) autoScrollPosition = new Point(autoScrollPosition.X, 0); } if (AutoScrollPosition != autoScrollPosition) AutoScrollPosition = autoScrollPosition; //ApplyScrollChange(); } private void TouchHandlerPan(object sender, Touch.GestureEventArgs e) { if (_TouchDrag) { Point autoScrollPosition = AutoScrollPosition; Size autoScrollMinSize = new Size(_HScrollBar.Maximum, _VScrollBar.Maximum); int offset = (e.Location.X - _TouchStartLocation.X); int offsetChange = offset + _TouchStartScrollPosition.X; bool overflowH = false; if (autoScrollMinSize.Width > _TouchInnerBounds.Width) { if (-offsetChange + MaximumReversePageOffset > autoScrollMinSize.Width - _TouchInnerBounds.Width) { autoScrollPosition.X = -(autoScrollMinSize.Width + MaximumReversePageOffset - _TouchInnerBounds.Width); overflowH = true; } else if (offsetChange > MaximumReversePageOffset) { autoScrollPosition.X = MaximumReversePageOffset; overflowH = true; } else autoScrollPosition.X = offsetChange; } // Y Scroll bool overflowV = false; if (autoScrollMinSize.Height > _TouchInnerBounds.Height) { offset = (e.Location.Y - _TouchStartLocation.Y); offsetChange = offset + _TouchStartScrollPosition.Y; if (-offsetChange + MaximumReversePageOffset > autoScrollMinSize.Height - _TouchInnerBounds.Height) { autoScrollPosition.Y = -(autoScrollMinSize.Height + MaximumReversePageOffset - _TouchInnerBounds.Height); overflowV = true; } else if (offsetChange > MaximumReversePageOffset) { autoScrollPosition.Y = MaximumReversePageOffset; overflowV = true; } else autoScrollPosition.Y = offsetChange; } if (AutoScrollPosition != autoScrollPosition) { AutoScrollPosition = autoScrollPosition; Update(); } if (overflowH && overflowV && e.IsInertia) EndTouchPan(); e.Handled = true; } } #endregion #region Localize Members #region InvokeLocalizeString /// /// InvokeLocalizeString /// /// public void InvokeLocalizeString(LocalizeEventArgs e) { if (LocalizeString != null) LocalizeString(this, e); } #endregion #region LocalizedString private string LocalizedString(ref string lstring) { LoadLocalizedStrings(); return (lstring); } #endregion #region LoadLocalizedStrings private void LoadLocalizedStrings() { if (_LocalizedStringsLoaded == false) { using (LocalizationManager lm = new LocalizationManager(this)) { string s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridFilterShowAll)) != "") _FilterShowAllString = s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridFilterCustom)) != "") _FilterCustomString = s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridFilterShowNull)) != "") _FilterShowNullString = s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridFilterShowNotNull)) != "") _FilterShowNotNullString = s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridFilterApply)) != "") _FilterApplyString = s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridFilterOk)) != "") _FilterOkString = s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridFilterCancel)) != "") _FilterCancelString = s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridFilterClose)) != "") _FilterCloseString = s; if ((s = lm.GetLocalizedString(LocalizationKeys.SuperGridGroupByWaterMarkText)) != "") _GroupByWaterMarkText = s; } _LocalizedStringsLoaded = true; } } #endregion #endregion } #region enums #region AutoScrollEnable [Flags] internal enum AutoScrollEnable { None = 0, Vertical = (1 << 0), Horizontal = (1 << 1), } #endregion #region PlaySoundContext /// /// Context under which system sound ('beep') is played. /// public enum PlaySoundContext { /// /// Attempted activation of a cell which is marked as non-selectable /// or is an EmptyCell with AllowEmptyCellSelection set to false. /// CellActivate, /// /// Cell validation failure notification. /// CellValidate, /// /// Attempted activation of a grid row which is marked as non-selectable. /// RowActivate, /// /// Row validation failure notification. /// RowDeactivate, /// /// Row validation failure notification. /// RowValidate, /// /// Row deletion failure via DEL key input. /// RowDeleteAttempt, /// /// Row un-deletion failure via Shift-DEL key input. /// RowUnDeleteAttempt, /// /// Row insert failure via INS key input. /// RowInsertAttempt, /// /// Trying to suspend merge of a group of mergesd cells when /// AllowSuspend is set to false. /// MergeSuspend, } #endregion #region DataContext /// /// Context under which data is being accessed /// public enum DataContext { /// /// CellEdit /// CellEdit, /// /// CellKeyEvent /// CellKeyEvent, /// /// CellMouseEvent /// CellMouseEvent, /// /// CellProposedSize /// CellProposedSize, /// /// CellRender /// CellRender, /// /// CellValueLoad /// CellValueLoad, /// /// CellValueStore /// CellValueStore, /// /// CellExpressionParse /// CellExpressionParse, /// /// CellExpressionEval /// CellExpressionEval, /// /// CellGetFormattedValue /// CellGetFormattedValue, /// /// SetRowPosition /// SetRowPosition, /// /// RowFlush /// RowFlush, /// /// InsertRow /// InsertRow, } #endregion #region ExpandButtonType /// /// Expand button type /// public enum ExpandButtonType { /// /// NotSet /// NotSet = -1, /// /// None /// None, /// /// Circle /// Circle, /// /// Square /// Square, /// /// Triangle /// Triangle, } #endregion #region NewRowContext /// /// Context under which the New /// row is being accessed / created /// public enum NewRowContext { /// /// RowInit /// RowInit, /// /// RowActivate /// RowActivate, /// /// RowDeactivate /// RowDeactivate, } #endregion #region RenderParts /// /// Identifies grid 'parts' to be rendered /// [Flags] public enum RenderParts { /// /// Nothing to render /// Nothing = 0, /// /// Background needs to be rendered /// Background = (1 << 0), /// /// Border needs to be rendered /// Border = (1 << 1), /// /// Content needs to be rendered /// Content = (1 << 2), /// /// RowHeader needs to be rendered /// RowHeader = (1 << 3), /// /// Whitespace needs to be rendered /// Whitespace = (1 << 4), } #endregion #region TabSelection /// /// Identifies selection style when the Tab key is pressed /// public enum TabSelection { /// /// Previous / Next cell. /// Cell, /// /// Previous / Next cell in the same row. /// CellSameRow, /// /// Previous / Next Control. /// Control, } #endregion #endregion #region EventArgs #region GridCellActivatedEventArgs /// /// GridCellActivatedEventArgs /// public class GridCellActivatedEventArgs : GridEventArgs { #region Private variables private readonly GridCell _OldActiveCell; private readonly GridCell _NewActiveCell; #endregion /// /// GridCellActivatedEventArgs /// /// /// /// public GridCellActivatedEventArgs( GridPanel gridPanel, GridCell oldCell, GridCell newCell) : base(gridPanel) { _OldActiveCell = oldCell; _NewActiveCell = newCell; } #region Public properties /// /// Gets the old (previous) ActiveCell /// public GridCell OldActiveCell { get { return (_OldActiveCell); } } /// /// Gets the new (current) ActiveCell /// public GridCell NewActiveCell { get { return (_NewActiveCell); } } #endregion } #endregion #region GridCellActivatingEventArgs /// /// GridCellActivatingEventArgs /// public class GridCellActivatingEventArgs : GridCellActivatedEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridCellActivatedEventArgs /// /// /// /// public GridCellActivatingEventArgs( GridPanel gridPanel, GridCell oldCell, GridCell newCell) : base(gridPanel, oldCell, newCell) { } #region Public properties /// /// Gets or sets whether to Cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridActiveGridChangedEventArgs /// /// ActiveGridChangedEventArgs /// public class GridActiveGridChangedEventArgs : EventArgs { #region Private variables private readonly GridPanel _NewGridPanel; private readonly GridPanel _OldGridPanel; #endregion /// /// GridActiveGridChangedEventArgs /// /// /// public GridActiveGridChangedEventArgs( GridPanel oldGridPanel, GridPanel newGridPanel) { _OldGridPanel = oldGridPanel; _NewGridPanel = newGridPanel; } #region Public properties /// /// Gets the old (previous) active GridPanel /// public GridPanel OldGridPanel { get { return (_OldGridPanel); } } /// /// Gets the new (current) active GridPanel /// public GridPanel NewGridPanel { get { return (_NewGridPanel); } } #endregion } #endregion #region GridAfterCheckEventArgs /// /// GridAfterCheckEventArgs /// public class GridAfterCheckEventArgs : GridEventArgs { #region Private variables private GridElement _Item; #endregion /// /// GridAfterCheckEventArgs /// /// /// public GridAfterCheckEventArgs(GridPanel gridPanel, GridElement item) : base(gridPanel) { _Item = item; } #region Public properties /// /// Gets the Item being checked or unchecked /// public GridElement Item { get { return (_Item); } } #endregion } #endregion #region GridAfterCollapseEventArgs /// /// GridAfterCollapseEventArgs /// public class GridAfterCollapseEventArgs : GridAfterExpandEventArgs { /// /// GridRowAfterCollapseEventArgs /// /// /// /// public GridAfterCollapseEventArgs(GridPanel gridPanel, GridContainer gridContainer, ExpandSource expandSource) : base(gridPanel, gridContainer, expandSource) { } } #endregion #region GridAfterExpandEventArgs /// /// GridAfterExpandChangeEventArgs /// public class GridAfterExpandEventArgs : GridEventArgs { #region Private variables private GridContainer _GridContainer; private ExpandSource _ExpandSource; #endregion /// /// GridAfterExpandChangeEventArgs /// /// /// /// public GridAfterExpandEventArgs( GridPanel gridPanel, GridContainer gridContainer, ExpandSource expandSource) : base(gridPanel) { _GridContainer = gridContainer; _ExpandSource = expandSource; } #region Public properties /// /// Gets the GridContainer being expanded or collapsed /// public GridContainer GridContainer { get { return (_GridContainer); } } /// /// Returns the source of the operation /// public ExpandSource ExpandSource { get { return (_ExpandSource); } } #endregion } #endregion #region GridBeforeCheckEventArgs /// /// GridRowBeforeExpandEventArgs /// public class GridBeforeCheckEventArgs : GridAfterCheckEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridBeforeCheckEventArgs /// /// /// public GridBeforeCheckEventArgs(GridPanel gridPanel, GridElement gridRow) : base(gridPanel, gridRow) { } #region Public properties /// /// Gets or sets whether to Cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridBeforeCollapseEventArgs /// /// GridBeforeExpandEventArgs /// public class GridBeforeCollapseEventArgs : GridBeforeExpandEventArgs { /// /// GridBeforeExpandEventArgs /// /// /// /// public GridBeforeCollapseEventArgs(GridPanel gridPanel, GridContainer gridContainer, ExpandSource expandSource) : base(gridPanel, gridContainer, expandSource) { } } #endregion #region GridBeforeExpandEventArgs /// /// GridBeforeExpandEventArgs /// public class GridBeforeExpandEventArgs : GridAfterExpandEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridRowBeforeExpandEventArgs /// /// /// /// public GridBeforeExpandEventArgs(GridPanel gridPanel, GridContainer gridContainer, ExpandSource expandSource) : base(gridPanel, gridContainer, expandSource) { } #region Public properties /// /// Gets or sets whether to Cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridCellEventArgs /// /// GridCellEventArgs /// public class GridCellEventArgs : GridEventArgs { #region Private variables private readonly GridCell _GridCell; #endregion /// /// GridCellEventArgs /// /// /// public GridCellEventArgs(GridPanel gridPanel, GridCell gridCell) : base(gridPanel) { _GridCell = gridCell; } #region Public properties /// /// Gets the associated GridCell /// public GridCell GridCell { get { return (_GridCell); } } #endregion } #endregion #region GridCellClickEventArgs /// /// GridCellClickEventArgs /// public class GridCellClickEventArgs : GridCellEventArgs { #region Private variables private bool _Cancel; private MouseEventArgs _MouseEventArgs; #endregion /// /// GridCellClickEventArgs /// /// /// /// public GridCellClickEventArgs( GridPanel gridPanel, GridCell gridCell, MouseEventArgs e) : base(gridPanel, gridCell) { _MouseEventArgs = e; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated MouseEventArgs /// public MouseEventArgs MouseEventArgs { get { return (_MouseEventArgs); } } #endregion } #endregion #region GridCellDoubleClickEventArgs /// /// GridCellDoubleClickEventArgs /// public class GridCellDoubleClickEventArgs : GridCellClickEventArgs { /// /// GridCellDoubleClickEventArgs /// /// /// /// public GridCellDoubleClickEventArgs(GridPanel gridPanel, GridCell gridCell, MouseEventArgs e) : base(gridPanel, gridCell, e) { } } #endregion #region GridCellInfoEnterEventArgs /// /// GridCellInfoEnterEventArgs /// public class GridCellInfoEnterEventArgs : GridCellEventArgs { #region Private variables private bool _Cancel; private Point _Location; private Control _Control; private System.Windows.Forms.ToolTip _ToolTip; #endregion /// /// GridCellInfoEnterEventArgs /// /// /// /// /// public GridCellInfoEnterEventArgs(GridPanel gridPanel, GridCell gridCell, Control control, System.Windows.Forms.ToolTip toolTip, Point pt) : base(gridPanel, gridCell) { _Location = pt; _Control = control; _ToolTip = toolTip; } #region Public properties /// /// Gets or sets whether to cancel the default operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated Control associated with the CellInfo (can /// either be the GridControl or CellInfoWindow - depending upon /// whether an edit is currently active or not). /// public Control Control { get { return (_Control); } } // /// Gets the associated event ToolTip control /// public System.Windows.Forms.ToolTip ToolTip { get { return (_ToolTip); } } // /// Gets the associated event Location /// public Point Location { get { return (_Location); } } #endregion } #endregion #region GridCellInfoLeaveEventArgs /// /// GridCellInfoLeaveEventArgs /// public class GridCellInfoLeaveEventArgs : GridCellEventArgs { #region Private variables private Control _Control; private System.Windows.Forms.ToolTip _ToolTip; #endregion /// /// GridRowInfoLeaveEventArgs /// /// /// /// public GridCellInfoLeaveEventArgs(GridPanel gridPanel, GridCell gridCell, Control control, System.Windows.Forms.ToolTip toolTip) : base(gridPanel, gridCell) { _Control = control; _ToolTip = toolTip; } #region Public properties /// /// Gets the associated Control associated with the CellInfo (can /// either be the GridControl or CellInfoWindow - depending upon /// whether an edit is currently active or not). /// public Control Control { get { return (_Control); } } // /// Gets the associated event ToolTip control /// public System.Windows.Forms.ToolTip ToolTip { get { return (_ToolTip); } } #endregion } #endregion #region GridCellMouseEventArgs /// /// GridCellMouseEventArgs /// public class GridCellMouseEventArgs : MouseEventArgs { #region Private variables private readonly GridPanel _GridPanel; private readonly GridCell _GridCell; #endregion /// /// GridCellMouseEventArgs /// /// /// /// public GridCellMouseEventArgs(GridPanel gridPanel, GridCell gridCell, MouseEventArgs ev) : base(ev.Button, ev.Clicks, ev.X, ev.Y, ev.Delta) { _GridPanel = gridPanel; _GridCell = gridCell; } #region Public properties /// /// Gets the associated GridCell /// public GridCell GridCell { get { return (_GridCell); } } /// /// Gets the associated GridPanel /// public GridPanel GridPanel { get { return (_GridPanel); } } #endregion } #endregion #region GridCellUserFunctionEventArgs /// /// GridCellUserFunctionEventArgs /// public class GridCellUserFunctionEventArgs : GridCellEventArgs { #region Private variables private object[] _Args; private object _Result; #endregion /// /// GridCellUserFunctionEventArgs /// /// /// /// /// public GridCellUserFunctionEventArgs( GridPanel gridPanel, GridCell gridCell, object[] args, object result) : base(gridPanel, gridCell) { _Args = args; _Result = result; } #region Public properties /// /// Gets or sets the associated function arguments /// public object[] Args { get { return (_Args); } set { _Args = value; } } /// /// Gets or sets the associated function result /// public object Result { get { return (_Result); } set { _Result = value; } } #endregion } #endregion #region GridCellValidatedEventArgs /// /// GridCellValidatedEventArgs /// public class GridCellValidatedEventArgs : GridCellEventArgs { /// /// GridCellValidatedEventArgs /// /// /// public GridCellValidatedEventArgs(GridPanel gridPanel, GridCell gridCell) : base(gridPanel, gridCell) { } } #endregion #region GridCellValidatingEventArgs /// /// GridCellValidatingEventArgs /// public class GridCellValidatingEventArgs : GridCellEventArgs { #region Private variables private bool _Cancel; private object _Value; private object _FormattedValue; #endregion /// /// GridCellValidatingEventArgs /// /// /// /// /// public GridCellValidatingEventArgs(GridPanel gridPanel, GridCell gridCell, object value, object formattedValue) : base(gridPanel, gridCell) { _Value = value; _FormattedValue = formattedValue; } #region Public properties /// /// Gets or sets the Value to validate /// public object Value { get { return (_Value); } set { _Value = value; } } /// /// Gets the formatted Value /// public object FormattedValue { get { return (_FormattedValue); } } /// /// Gets or sets whether to cancel the operation /// resulting in the cell validation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridCellValueChangedEventArgs /// /// GridCellValueChangedEventArgs /// public class GridCellValueChangedEventArgs : GridCellEventArgs { #region Private variables private object _OldValue; private object _NewValue; private DataContext _DataContext; #endregion /// /// GridCellValueChangedEventArgs /// /// /// /// /// /// public GridCellValueChangedEventArgs(GridPanel gridPanel, GridCell gridCell, object oldValue, object newValue, DataContext context) : base(gridPanel, gridCell) { _OldValue = oldValue; _NewValue = newValue; _DataContext = context; } #region Public properties /// /// Gets the context under which /// the call value was changed /// public DataContext DataContext { get { return (_DataContext); } } /// /// Gets the old cell Value /// public object OldValue { get { return (_OldValue); } } /// /// Gets the new cell Value /// public object NewValue { get { return (_NewValue); } } #endregion } #endregion #region GridColumnEventArgs /// /// GridColumnEventArgs /// public class GridColumnEventArgs : EventArgs { #region Private variables private GridPanel _GridPanel; private GridColumn _GridColumn; #endregion /// /// GridColumnEventArgs /// /// /// public GridColumnEventArgs(GridPanel gridPanel, GridColumn gridColumn) { _GridPanel = gridPanel; _GridColumn = gridColumn; } #region Public properties /// /// Gets th associated GridPanel /// public GridPanel GridPanel { get { return (_GridPanel); } } /// /// Gets the associated GridColumn /// public GridColumn GridColumn { get { return (_GridColumn); } } #endregion } #endregion #region GridColumnHeaderClickEventArgs /// /// GridColumnHeaderClickEventArgs /// public class GridColumnHeaderClickEventArgs : GridColumnEventArgs { #region Private variables private bool _Cancel; private MouseEventArgs _MouseEventArgs; #endregion /// /// GridColumnHeaderClickEventArgs /// /// /// /// public GridColumnHeaderClickEventArgs( GridPanel gridPanel, GridColumn gridColumn, MouseEventArgs e) : base(gridPanel, gridColumn) { _MouseEventArgs = e; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated MouseEventArgs /// public MouseEventArgs MouseEventArgs { get { return (_MouseEventArgs); } } #endregion } #endregion #region GridColumnHeaderEventArgs /// /// GridColumnHeaderEventArgs /// public class GridColumnHeaderEventArgs : EventArgs { #region Private variables private GridColumnHeader _GridColumnHeader; #endregion /// /// GridColumnHeaderEventArgs /// /// /// public GridColumnHeaderEventArgs(GridColumnHeader gridColumnHeader) { _GridColumnHeader = gridColumnHeader; } #region Public properties /// /// Gets th associated GridPanel /// public GridPanel GridPanel { get { return (_GridColumnHeader.GridPanel); } } /// /// Gets the associated GridColumnHeader /// public GridColumnHeader GridColumnHeader { get { return (_GridColumnHeader); } } #endregion } #endregion #region GridColumnHeaderMarkupLinkClickEventArgs /// /// GridColumnHeaderMarkupLinkClickEventArgs /// public class GridColumnHeaderMarkupLinkClickEventArgs : GridColumnEventArgs { #region Private variables private string _HRef; private string _Name; #endregion /// /// GridColumnHeaderMarkupLinkClickEventArgs /// /// /// /// /// public GridColumnHeaderMarkupLinkClickEventArgs( GridPanel gridPanel, GridColumn gridColumn, string name, string href) : base(gridPanel, gridColumn) { _HRef = href; _Name = name; } #region Public properties /// /// Gets the associated HyperLink HRef /// public string HRef { get { return (_HRef); } } /// /// Gets the associated HyperLink Name /// public string Name { get { return (_Name); } } #endregion } #endregion #region GridColumnHeaderDoubleClickEventArgs /// /// GridColumnHeaderDoubleClickEventArgs /// public class GridColumnHeaderDoubleClickEventArgs : GridColumnHeaderClickEventArgs { /// /// GridColumnHeaderDoubleClickEventArgs /// /// /// /// public GridColumnHeaderDoubleClickEventArgs( GridPanel gridPanel, GridColumn gridColumn, MouseEventArgs e) : base(gridPanel, gridColumn, e) { } } #endregion #region GridColumnHeaderMouseEventArgs /// /// GridColumnHeaderMouseEventArgs /// public class GridColumnHeaderMouseEventArgs : MouseEventArgs { #region Private variables private readonly GridColumnHeader _GridColumnHeader; #endregion /// /// GridColumnHeaderMouseEventArgs /// /// /// /// public GridColumnHeaderMouseEventArgs(GridColumnHeader gridColumnHeader, MouseEventArgs ev) : base(ev.Button, ev.Clicks, ev.X, ev.Y, ev.Delta) { _GridColumnHeader = gridColumnHeader; } #region Public properties /// /// Gets the associated GridColumnHeader /// public GridColumnHeader GridColumnHeader { get { return (_GridColumnHeader); } } /// /// Gets the associated GridPanel /// public GridPanel GridPanel { get { return (_GridColumnHeader.GridPanel); } } #endregion } #endregion #region GridColumnGroupHeaderClickEventArgs /// /// GridColumnGroupHeaderClickEventArgs /// public class GridColumnGroupHeaderClickEventArgs : GridEventArgs { #region Private variables private GridColumnHeader _ColumnHeader; private ColumnGroupHeader _GroupHeader; private MouseEventArgs _MouseEventArgs; private bool _Cancel; #endregion /// /// GridColumnGroupHeaderClickEventArgs /// /// /// /// /// public GridColumnGroupHeaderClickEventArgs(GridPanel gridPanel, GridColumnHeader header, ColumnGroupHeader groupHeader, MouseEventArgs e) : base(gridPanel) { _ColumnHeader = header; _GroupHeader = groupHeader; _MouseEventArgs = e; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated ColumnHeader /// public GridColumnHeader ColumnHeader { get { return (_ColumnHeader); } } /// /// Gets the associated GroupHeader /// public ColumnGroupHeader GroupHeader { get { return (_GroupHeader); } } /// /// Gets the associated MouseEventArgs /// public MouseEventArgs MouseEventArgs { get { return (_MouseEventArgs); } } #endregion } #endregion #region GridColumnGroupHeaderMarkupLinkClickEventArgs /// /// GridColumnGroupHeaderMarkupLinkClickEventArgs /// public class GridColumnGroupHeaderMarkupLinkClickEventArgs : GridEventArgs { #region Private variables private GridColumnHeader _ColumnHeader; private ColumnGroupHeader _GroupHeader; private string _HRef; private string _Name; #endregion /// /// GridColumnGroupHeaderMarkupLinkClickEventArgs /// /// /// /// /// /// public GridColumnGroupHeaderMarkupLinkClickEventArgs(GridPanel gridPanel, GridColumnHeader header, ColumnGroupHeader groupHeader, string name, string href) : base(gridPanel) { _ColumnHeader = header; _GroupHeader = groupHeader; _HRef = href; _Name = name; } #region Public properties /// /// Gets the associated ColumnHeader /// public GridColumnHeader ColumnHeader { get { return (_ColumnHeader); } } /// /// Gets the associated GroupHeader /// public ColumnGroupHeader GroupHeader { get { return (_GroupHeader); } } /// /// Gets the associated HyperLink HRef /// public string HRef { get { return (_HRef); } } /// /// Gets the associated HyperLink Name /// public string Name { get { return (_Name); } } #endregion } #endregion #region GridColumnGroupHeaderDoubleClickEventArgs /// /// GridColumnGroupHeaderDoubleClickEventArgs /// public class GridColumnGroupHeaderDoubleClickEventArgs : GridColumnGroupHeaderClickEventArgs { /// /// GridColumnGroupHeaderDoubleClickEventArgs /// /// /// /// /// public GridColumnGroupHeaderDoubleClickEventArgs(GridPanel gridPanel, GridColumnHeader header, ColumnGroupHeader groupHeader, MouseEventArgs e) : base(gridPanel, header, groupHeader, e) { } } #endregion #region GridColumnGroupHeaderResizedEventArgs /// /// GridColumnGroupHeaderResizedEventArgs /// public class GridColumnGroupHeaderResizedEventArgs : EventArgs { #region Private variables private GridPanel _GridPanel; private ColumnGroupHeader _GroupHeader; private Size _OldSize; #endregion /// /// GridColumnGroupHeaderResizedEventArgs /// /// /// /// public GridColumnGroupHeaderResizedEventArgs( GridPanel gridPanel, ColumnGroupHeader groupHeader, Size oldSize) { _GridPanel = gridPanel; _GroupHeader = groupHeader; _OldSize = oldSize; } #region Public properties /// /// Gets th associated GridPanel /// public GridPanel GridPanel { get { return (_GridPanel); } } /// /// Gets the associated GridHeader /// public ColumnGroupHeader GroupHeader { get { return (_GroupHeader); } } /// /// Gets the OldSize /// public Size OldSize { get { return (_OldSize); } } /// /// Gets the NewSize /// public Size NewSize { get { return (_GroupHeader.Size); } } #endregion } #endregion #region GridColumnGroupedEventArgs /// /// GridColumnGroupedEventArgs /// public class GridColumnGroupedEventArgs : GridColumnEventArgs { #region Private variables private GridGroup _GridGroup; #endregion /// /// GridColumnEventArgs /// /// /// /// public GridColumnGroupedEventArgs( GridPanel gridPanel, GridColumn gridColumn, GridGroup gridGroup) : base(gridPanel, gridColumn) { _GridGroup = gridGroup; } #region Public properties /// /// Gets th associated GridGroup /// public GridGroup GridGroup { get { return (_GridGroup); } } #endregion } #endregion #region GridCompareElementsEventArgs /// /// GridCompareElementsEventArgs /// public class GridCompareElementsEventArgs : GridCancelEventArgs { #region Private variables private readonly GridElement _ElementA; private readonly GridElement _ElementB; private int _Result; #endregion /// /// GridCompareElementsEventArgs /// /// /// /// public GridCompareElementsEventArgs( GridPanel gridPanel, GridElement a, GridElement b) : base(gridPanel) { _ElementA = a; _ElementB = b; } #region Public properties /// /// Gets the left-hand element of the comparison /// public GridElement ElementA { get { return (_ElementA); } } /// /// Gets the right-hand element of the comparison /// public GridElement ElementB { get { return (_ElementB); } } /// /// Gets or sets the result of the element compare. /// -1 = ElementA is less than ElementB /// 0 = ElementA is equal to ElementB /// +1 = ElementA is greater than ElementB /// public int Result { get { return (_Result); } set { _Result = value; } } #endregion } #endregion #region GridDataBindingStartEventArgs /// /// GridDataBindingStartEventArgs /// public class GridDataBindingStartEventArgs : GridRowCancelEventArgs { #region Private variables private string _TableName; private bool _AutoGenerateColumns; private ProcessChildRelations _ProcessChildRelations; #endregion /// /// GridDataBindingStartEventArgs /// ///Associated GridPanel ///Associated GridRow ///Name of table being bound to ///Whether to auto-generate columns /// public GridDataBindingStartEventArgs(GridPanel gridPanel, GridRow row, string tableName, bool autoGenerateColumns, ProcessChildRelations crProcess) : base(gridPanel, row) { _TableName = tableName; _AutoGenerateColumns = autoGenerateColumns; _ProcessChildRelations = crProcess; } #region Public properties /// /// Gets or sets whether to auto-generate /// the nested table columns /// public bool AutoGenerateColumns { get { return (_AutoGenerateColumns); } set { _AutoGenerateColumns = value; } } /// /// Gets or sets how Child Relations /// are processed by the SuperGrid /// public ProcessChildRelations ProcessChildRelations { get { return (_ProcessChildRelations); } set { _ProcessChildRelations = value; } } /// /// Gets the nested table name being bound /// public string TableName { get { return (_TableName); } } #endregion } #endregion #region GridDataBindingCompleteEventArgs /// /// GridDataBindingCompleteEventArgs /// public class GridDataBindingCompleteEventArgs : GridEventArgs { #region Private variables private ListChangedType _ListChangedType; #endregion /// /// GridDataBindingCompleteEventArgs /// /// public GridDataBindingCompleteEventArgs(GridPanel gridPanel) : base(gridPanel) { _ListChangedType = ListChangedType.Reset; } #region Public properties /// /// Gets how the list was changed /// public ListChangedType ListChangedType { get { return (_ListChangedType); } } #endregion } #endregion #region GridDataErrorEventArgs /// /// GridDataErrorEventArgs /// public class GridDataErrorEventArgs : CancelEventArgs { #region Private variables private GridPanel _GridPanel; private GridCell _GridCell; private Exception _Exception; private DataContext _ErrorContext; private object _Value; private bool _Retry; private bool _ThrowException; #endregion /// /// GridDataErrorEventArgs /// public GridDataErrorEventArgs( GridPanel gridPanel, GridCell gridCell, Exception exception, DataContext context, object value) { _GridPanel = gridPanel; _GridCell = gridCell; _Exception = exception; _ErrorContext = context; _Value = value; } #region Public properties /// /// Gets the associated GridPanel /// public GridPanel GridPanel { get { return (_GridPanel); } } /// /// Gets the associated cell /// public GridCell GridCell { get { return (_GridCell); } } /// /// Gets the context under which the Exception was thrown /// public DataContext ErrorContext { get { return (_ErrorContext); } } /// /// Gets the Exception that was thrown /// public Exception Exception { get { return (_Exception); } } /// /// Gets or sets whether the grid should retry the operation /// public bool Retry { get { return (_Retry); } set { _Retry = value; } } /// /// Gets whether the exception should be re-thrown by the grid /// public bool ThrowException { get { return (_ThrowException); } set { _ThrowException = value; } } /// /// Gets the value that caused the Exception /// public object Value { get { return (_Value); } set { _Value = value; } } #endregion } #endregion #region GridDataFilteringStartEventArgs /// /// GridDataFilteringStartEventArgs /// public class GridDataFilteringStartEventArgs : GridCancelEventArgs { /// /// GridDataFilteringStartEventArgs /// ///Associated GridPanel public GridDataFilteringStartEventArgs(GridPanel gridPanel) : base(gridPanel) { } } #endregion #region GridDataFilteringCompleteEventArgs /// /// GridDataFilteringCompleteEventArgs /// public class GridDataFilteringCompleteEventArgs : GridEventArgs { /// /// GridDataFilteringCompleteEventArgs /// /// public GridDataFilteringCompleteEventArgs(GridPanel gridPanel) : base(gridPanel) { } } #endregion #region GridFilterBeginEditEventArgs /// /// GridFilterBeginEditEventArgs /// public class GridFilterBeginEditEventArgs : GridFilterEventArgs { #region Private variables private bool _Cancel; private FilterPanel _FilterPanel; #endregion /// /// GridFilterBeginEditEventArgs /// /// /// /// public GridFilterBeginEditEventArgs( GridPanel gridPanel, GridColumn gridColumn, FilterPanel filterPanel) : base(gridPanel, gridColumn) { _FilterPanel = filterPanel; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated FilterPanel /// public FilterPanel FilterPanel { get { return (_FilterPanel); } } #endregion } #endregion #region GridFilterCancelEditEventArgs /// /// GridFilterCancelEditEventArgs /// public class GridFilterCancelEditEventArgs : GridFilterEventArgs { #region Private variables private FilterPanel _FilterPanel; #endregion /// /// GridFilterCancelEditEventArgs /// /// /// /// public GridFilterCancelEditEventArgs( GridPanel gridPanel, GridColumn gridColumn, FilterPanel filterPanel) : base(gridPanel, gridColumn) { _FilterPanel = filterPanel; } #region Public properties /// /// Gets the associated FilterPanel /// public FilterPanel FilterPanel { get { return (_FilterPanel); } } #endregion } #endregion #region GridFilterColumnErrorEventArgs /// /// GridFilterColumnErrorEventArgs /// public class GridFilterColumnErrorEventArgs : GridFilterRowErrorEventArgs { #region Private variables private GridColumn _GridColumn; #endregion /// /// GridFilterColumnErrorEventArgs /// /// /// /// /// /// /// public GridFilterColumnErrorEventArgs(GridPanel gridPanel, GridRow gridRow, GridColumn gridColumn, Exception exp, bool filteredOut, bool throwException, bool postError) : base(gridPanel, gridRow, exp, filteredOut, throwException, postError) { _GridColumn = gridColumn; } #region Public properties /// /// Gets the associated GridColumn /// public GridColumn GridColumn { get { return (_GridColumn); } } #endregion } #endregion #region GridFilterEditValueChangedEventArgs /// /// GridFilterEditValueChangedEventArgs /// public class GridFilterEditValueChangedEventArgs : GridFilterEventArgs { #region Private variables private object _OldValue; private object _NewValue; private object _NewDisplayValue; private string _NewExpr; private FilterPanel _FilterPanel; private bool _Cancel; #endregion /// /// /// /// /// /// /// /// /// public GridFilterEditValueChangedEventArgs(GridPanel gridPanel, GridColumn gridColumn, FilterPanel fp, object oldValue, object newValue, object newDisplayValue, string newExpr) : base(gridPanel, gridColumn) { _FilterPanel = fp; _OldValue = oldValue; _NewValue = newValue; _NewDisplayValue = newDisplayValue; _NewExpr = newExpr; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated FilterPanel /// public FilterPanel FilterPanel { get { return (_FilterPanel); } } /// /// Gets the old filter value /// public object OldValue { get { return (_OldValue); } } /// /// Gets or sets the new filter value /// public object NewValue { get { return (_NewValue); } set { _NewValue = value; } } /// /// Gets or sets the new filter display value /// public object NewDisplayValue { get { return (_NewDisplayValue); } set { _NewDisplayValue = value; } } /// /// Gets or sets the new filter expression /// public string NewExpr { get { return (_NewExpr); } set { _NewExpr = value; } } #endregion } #endregion #region GridFilterEndEditEventArgs /// /// GridFilterEndEditEventArgs /// public class GridFilterEndEditEventArgs : GridFilterEventArgs { #region Private variables private FilterPanel _FilterPanel; #endregion /// /// GridFilterEndEditEventArgs /// /// /// /// public GridFilterEndEditEventArgs( GridPanel gridPanel, GridColumn gridColumn, FilterPanel filterPanel) : base(gridPanel, gridColumn) { _FilterPanel = filterPanel; } #region Public properties /// /// Gets the associated FilterPanel /// public FilterPanel FilterPanel { get { return (_FilterPanel); } } #endregion } #endregion #region GridFilterEventArgs /// /// GridFilterEventArgs /// public class GridFilterEventArgs : GridColumnEventArgs { /// /// GridFilterEventArgs /// /// /// public GridFilterEventArgs(GridPanel gridPanel, GridColumn gridColumn) : base(gridPanel, gridColumn) { } } #endregion #region GridFilterHeaderClickEventArgs /// /// GridFilterHeaderClickEventArgs /// public class GridFilterHeaderClickEventArgs : GridColumnEventArgs { #region Private variables private bool _Cancel; private MouseEventArgs _MouseEventArgs; #endregion /// /// GridFilterHeaderClickEventArgs /// /// /// /// public GridFilterHeaderClickEventArgs( GridPanel gridPanel, GridColumn gridColumn, MouseEventArgs e) : base(gridPanel, gridColumn) { _MouseEventArgs = e; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated MouseEventArgs /// public MouseEventArgs MouseEventArgs { get { return (_MouseEventArgs); } } #endregion } #endregion #region GridFilterHelpClosingEventArgs /// /// GridFilterHelpClosingEventArgs /// public class GridFilterHelpClosingEventArgs : GridFilterEventArgs { #region Private variables private SampleExpr _SampleExpr; #endregion /// /// GridFilterHelpClosingEventArgs /// /// /// /// public GridFilterHelpClosingEventArgs( GridPanel gridPanel, GridColumn gridColumn, SampleExpr sampleExpr) : base(gridPanel, gridColumn) { _SampleExpr = sampleExpr; } #region Public properties /// /// Gets the associated Sample Expression help window /// public SampleExpr SampleExpr { get { return (_SampleExpr); } } #endregion } #endregion #region GridFilterHelpOpeningEventArgs /// /// GridFilterHelpOpeningEventArgs /// public class GridFilterHelpOpeningEventArgs : GridFilterEventArgs { #region Private variables private bool _Cancel; private SampleExpr _SampleExpr; #endregion /// /// GridFilterHelpOpeningEventArgs /// /// /// /// public GridFilterHelpOpeningEventArgs( GridPanel gridPanel, GridColumn gridColumn, SampleExpr sampleExpr) : base(gridPanel, gridColumn) { _SampleExpr = sampleExpr; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated Sample Expression help window /// public SampleExpr SampleExpr { get { return (_SampleExpr); } } #endregion } #endregion #region GridFilterItemsLoadedEventArgs /// /// GridFilterItemsLoadedEventArgs /// public class GridFilterItemsLoadedEventArgs : GridFilterEventArgs { #region Private variables private ComboBoxEx _ComboBox; #endregion /// /// GridFilterItemsLoadedEventArgs /// /// /// /// public GridFilterItemsLoadedEventArgs( GridPanel gridPanel, GridColumn gridColumn, ComboBoxEx comboBox) : base(gridPanel, gridColumn) { _ComboBox = comboBox; } #region Public properties /// /// Gets the associated ComboBoxEx /// public ComboBoxEx ComboBox { get { return (_ComboBox); } } #endregion } #endregion #region GridFilterLoadItemsEventArgs /// /// GridFilterLoadItemsEventArgs /// public class GridFilterLoadItemsEventArgs : GridFilterEventArgs { #region Private variables private bool _Cancel; private ComboBoxEx _ComboBox; #endregion /// /// GridFilterBeginEditEventArgs /// /// /// /// public GridFilterLoadItemsEventArgs( GridPanel gridPanel, GridColumn gridColumn, ComboBoxEx comboBox) : base(gridPanel, gridColumn) { _ComboBox = comboBox; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated ComboBoxEx /// public ComboBoxEx ComboBox { get { return (_ComboBox); } } #endregion } #endregion #region GridFilterLoadUserDataEventArgs /// /// GridFilterLoadUserDataEventArgs /// public class GridFilterLoadUserDataEventArgs : GridCancelEventArgs { #region Private variables private string _FilterPath; private List _FilterData; #endregion /// /// GridFilterLoadUserDataEventArgs /// /// /// /// public GridFilterLoadUserDataEventArgs( GridPanel gridPanel, string filterPath, List filterData) : base(gridPanel) { _FilterPath = filterPath; _FilterData = filterData; } #region Public properties /// /// Gets or sets the associated FilterData (user defined /// Custom filter expressions) /// public List FilterData { get { return (_FilterData); } set { _FilterData = value; } } /// /// Gets or sets the associated Path to /// the user defined filter data expression file /// public string FilterPath { get { return (_FilterPath); } set { _FilterPath = value; } } #endregion } #endregion #region GridFilterPopupClosingEventArgs /// /// GridFilterPopupClosingEventArgs /// public class GridFilterPopupClosingEventArgs : GridFilterEventArgs { #region Private variables private FilterPopup _FilterPopup; #endregion /// /// GridFilterPopupClosingEventArgs /// /// /// /// public GridFilterPopupClosingEventArgs( GridPanel gridPanel, GridColumn gridColumn, FilterPopup filterPopup) : base(gridPanel, gridColumn) { _FilterPopup = filterPopup; } #region Public properties /// /// Gets the associated filter popup /// public FilterPopup FilterPopup { get { return (_FilterPopup); } } #endregion } #endregion #region GridFilterPopupLoadEventArgs /// /// GridFilterPopupLoadEventArgs /// public class GridFilterPopupLoadEventArgs : GridFilterEventArgs { #region Private variables private bool _Cancel; private FilterPopup _FilterPopup; #endregion /// /// GridFilterPopupLoadEventArgs /// /// /// /// public GridFilterPopupLoadEventArgs( GridPanel gridPanel, GridColumn gridColumn, FilterPopup filterPopup) : base(gridPanel, gridColumn) { _FilterPopup = filterPopup; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated filter popup /// public FilterPopup FilterPopup { get { return (_FilterPopup); } } #endregion } #endregion #region GridFilterPopupLoadedEventArgs /// /// GridFilterPopupLoadedEventArgs /// public class GridFilterPopupLoadedEventArgs : GridFilterEventArgs { #region Private variables private FilterPopup _FilterPopup; #endregion /// /// GridFilterPopupLoadedEventArgs /// /// /// /// public GridFilterPopupLoadedEventArgs( GridPanel gridPanel, GridColumn gridColumn, FilterPopup filterPopup) : base(gridPanel, gridColumn) { _FilterPopup = filterPopup; } #region Public properties /// /// Gets the associated filter popup /// public FilterPopup FilterPopup { get { return (_FilterPopup); } } #endregion } #endregion #region GridFilterPopupOpeningEventArgs /// /// GridFilterPopupOpeningEventArgs /// public class GridFilterPopupOpeningEventArgs : GridFilterEventArgs { #region Private variables private bool _Cancel; private FilterPopup _FilterPopup; #endregion /// /// GridFilterPopupOpeningEventArgs /// /// /// /// public GridFilterPopupOpeningEventArgs( GridPanel gridPanel, GridColumn gridColumn, FilterPopup filterPopup) : base(gridPanel, gridColumn) { _FilterPopup = filterPopup; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated filter popup /// public FilterPopup FilterPopup { get { return (_FilterPopup); } } #endregion } #endregion #region GridFilterPopupValueChangedEventArgs /// /// GridFilterPopupValueChangedEventArgs /// public class GridFilterPopupValueChangedEventArgs : GridFilterEventArgs { #region Private variables private object _FilterValue; private object _FilterDisplayValue; private string _FilterExpr; private FilterItemType _FilterItemType; private bool _Cancel; #endregion /// /// /// /// /// /// /// /// public GridFilterPopupValueChangedEventArgs(GridPanel gridPanel, GridColumn gridColumn, FilterItemType filterItemType, object filterValue, object filterDisplayValue, string filterExpr) : base(gridPanel, gridColumn) { _FilterItemType = filterItemType; _FilterValue = filterValue; _FilterDisplayValue = filterDisplayValue; _FilterExpr = filterExpr; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets or sets the new filter value /// public object FilterValue { get { return (_FilterValue); } set { _FilterValue = value; } } /// /// Gets or sets the new filter display value /// public object FilterDisplayValue { get { return (_FilterDisplayValue); } set { _FilterDisplayValue = value; } } /// /// Gets or sets the new filter expression /// public string FilterExpr { get { return (_FilterExpr); } set { _FilterExpr = value; } } /// /// Gets the filter popup item selected /// public FilterItemType FilterItemType { get { return (_FilterItemType); } } #endregion } #endregion #region GridFilterRowErrorEventArgs /// /// GridFilterRowErrorEventArgs /// public class GridFilterRowErrorEventArgs : GridRowEventArgs { #region Private variables private bool _Cancel; private bool _FilteredOut; private bool _ThrowException; private bool _PostError; private Exception _Exception; #endregion /// /// GridFilterRowErrorEventArgs /// /// /// /// /// /// /// public GridFilterRowErrorEventArgs(GridPanel gridPanel, GridRow gridRow, Exception exp, bool filteredOut, bool throwException, bool postError) : base(gridPanel, gridRow) { _Exception = exp; _FilteredOut = filteredOut; _ThrowException = throwException; _PostError = postError; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated filter Exception /// public Exception Exception { get { return (_Exception); } } /// /// Gets or sets whether the row is filtered out /// public bool FilteredOut { get { return (_FilteredOut); } set { _FilteredOut = value; } } /// /// Gets or sets whether to re-throw the exception /// public bool ThrowException { get { return (_ThrowException); } set { _ThrowException = value; } } /// /// Gets or sets whether to post/display the error to the user /// public bool PostError { get { return (_PostError); } set { _PostError = value; } } #endregion } #endregion #region GridFilterStoreUserDataEventArgs /// /// GridFilterStoreUserDataEventArgs /// public class GridFilterStoreUserDataEventArgs : GridCancelEventArgs { #region Private variables private string _FilterPath; private List _FilterData; #endregion /// /// GridFilterStoreUserDataEventArgs /// /// /// /// public GridFilterStoreUserDataEventArgs( GridPanel gridPanel, string filterPath, List filterData) : base(gridPanel) { _FilterPath = filterPath; _FilterData = filterData; } #region Public properties /// /// Gets or sets the associated FilterData (user defined /// Custom filter expressions) /// public List FilterData { get { return (_FilterData); } set { _FilterData = value; } } /// /// Gets or sets the associated Path to /// the user defined filter data expression file /// public string FilterPath { get { return (_FilterPath); } set { _FilterPath = value; } } #endregion } #endregion #region GridFilterUserFunctionEventArgs /// /// GridFilterUserFunctionEventArgs /// public class GridFilterUserFunctionEventArgs : GridRowEventArgs { #region Private variables private object[] _Args; private object _Result; private bool _Handled; #endregion /// /// GridFilterUserFunctionEventArgs /// /// /// /// /// public GridFilterUserFunctionEventArgs( GridPanel gridPanel, GridRow gridRow, object[] args, object result) : base(gridPanel, gridRow) { _Args = args; _Result = result; } #region Public properties /// /// Gets or sets the associated function arguments /// public object[] Args { get { return (_Args); } set { _Args = value; } } /// /// Gets or sets whether the function was handled /// public bool Handled { get { return (_Handled); } set { _Handled = value; } } /// /// Gets or sets the associated function result /// public object Result { get { return (_Result); } set { _Result = value; } } #endregion } #endregion #region GridGetGroupDetailRowsEventArgs /// /// GridGetGroupDetailRowsEventArgs /// public class GridGetGroupDetailRowsEventArgs : GridColumnEventArgs { #region Private variables private GridGroup _GridGroup; private List _PreDetailRows; private List _PostDetailRows; #endregion /// /// GridGetGroupDetailRowsEventArgs /// /// /// /// public GridGetGroupDetailRowsEventArgs( GridPanel gridPanel, GridColumn gridColumn, GridGroup gridGroup) : base(gridPanel, gridColumn) { _GridGroup = gridGroup; } #region Public properties /// /// Gets or sets the list of Post grouping DetailRows /// [Obsolete] public List DetailRows { get { return (_PostDetailRows); } set { _PostDetailRows = value; } } /// /// Gets or sets the list of Post grouping DetailRows /// public List PostDetailRows { get { return (_PostDetailRows); } set { _PostDetailRows = value; } } /// /// Gets or sets the list of Pre grouping DetailRows /// public List PreDetailRows { get { return (_PreDetailRows); } set { _PreDetailRows = value; } } /// /// Gets the associated GridGroup /// public GridGroup GridGroup { get { return (_GridGroup); } } #endregion } #endregion #region GridItemDragEventArgs /// /// GridItemDragEventArgs /// public class GridItemDragEventArgs : ItemDragEventArgs { #region Private variables private GridPanel _GridPanel; private bool _Cancel; #endregion /// /// GridDragStartedEventArgs /// /// /// /// public GridItemDragEventArgs(GridPanel gridPanel, GridElement item, MouseEventArgs e) : base(e.Button, item) { _GridPanel = gridPanel; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated GridPanel /// public GridPanel GridPanel { get { return (_GridPanel); } } #endregion } #endregion #region GridGetCellFormattedValueEventArgs /// /// GridGetCellFormattedValueEventArgs /// public class GridGetCellFormattedValueEventArgs : GridCellEventArgs { #region Private variables private string _FormattedValue; private CellSizingSource _SizingSource; #endregion /// /// GridGetCellFormattedValueEventArgs /// /// /// /// public GridGetCellFormattedValueEventArgs( GridPanel gridPanel, GridCell gridCell, string formattedValue, CellSizingSource sizingSource) : base(gridPanel, gridCell) { _FormattedValue = formattedValue; _SizingSource = sizingSource; } #region Public properties /// /// Gets or sets the associated FormattedValue /// public string FormattedValue { get { return (_FormattedValue); } set { _FormattedValue = value; } } /// /// Gets or sets the associated cell SizingSource /// public CellSizingSource SizingSource { get { return (_SizingSource); } set { _SizingSource = value; } } #endregion } #endregion #region GridGetCellRangeFormattedValueEventArgs /// /// GridGetCellRangeFormattedValueEventArgs /// public class GridGetCellRangeFormattedValueEventArgs : GridRowEventArgs { #region Private variables private CellRange _CellRange; private string _FormattedValue; #endregion /// /// GridGetCellRangeFormattedValueEventArgs /// /// /// /// /// public GridGetCellRangeFormattedValueEventArgs(GridPanel gridPanel, GridContainer gridContainer, CellRange cellRange, string formattedValue) : base(gridPanel, gridContainer) { _CellRange = cellRange; _FormattedValue = formattedValue; } #region Public properties /// /// Gets the associated CellRange /// public CellRange CellRange { get { return (_CellRange); } set { _CellRange = value; } } /// /// Gets or sets the associated FormattedValue /// public string FormattedValue { get { return (_FormattedValue); } set { _FormattedValue = value; } } #endregion } #endregion #region GridGetCellRangesEventArgs /// /// GridGetCellRangesEventArgs /// public class GridGetCellRangesEventArgs : GridEventArgs { #region Private variables private bool _Cancel; private List _CellRanges; private DisplayRange _DisplayRange; private GridContainer _GridContainer; #endregion /// /// GridGetCellRangesEventArgs /// ///Associated GridPanel ///Associated GridContainer ///Row/col range being merge evaluated ///List of CellRanges public GridGetCellRangesEventArgs(GridPanel gridPanel, GridContainer gridContainer, DisplayRange displayRange, List cellRanges) : base(gridPanel) { _GridContainer = gridContainer; _DisplayRange = displayRange; _CellRanges = cellRanges; } #region Public properties /// /// Gets or sets whether to cancel the default operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets or sets the CellRanges /// public List CellRanges { get { return (_CellRanges); } set { _CellRanges = value; } } /// /// Gets the current DisplayRange (row/col range /// being processed / merged evaluated) /// public DisplayRange DisplayRange { get { return (_DisplayRange); } } /// /// Gets the associated GridContainer /// public GridContainer GridContainer { get { return (_GridContainer); } } #endregion } #endregion #region GridGetCellStyleEventArgs /// /// GridGetCellStyleEventArgs /// public class GridGetCellStyleEventArgs : GridCellEventArgs { #region Private variables private StyleType _StyleType; private CellVisualStyle _Style; #endregion /// /// GridGetCellStyleEventArgs /// /// /// /// /// public GridGetCellStyleEventArgs( GridPanel gridPanel, GridCell gridCell, StyleType styleType, CellVisualStyle style) : base(gridPanel, gridCell) { _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public CellVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot be null."); _Style = value; } } #endregion } #endregion #region GridGetCellToolTipEventArgs /// /// GridGetCellToolTipEventArgs /// public class GridGetCellToolTipEventArgs : GridCellEventArgs { #region Private variables private string _ToolTip; private bool _Cancel; #endregion /// /// GridGetCellToolTipEventArgs /// /// /// /// public GridGetCellToolTipEventArgs( GridPanel gridPanel, GridCell gridCell, string toolTip) : base(gridPanel, gridCell) { _ToolTip = toolTip; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets or sets the associated ToolTip text /// public string ToolTip { get { return (_ToolTip); } set { _ToolTip = value; } } #endregion } #endregion #region GridGetCellValueEventArgs /// /// GridGetCellValueEventArgs /// public class GridGetCellValueEventArgs : GridCellEventArgs { #region Private variables private object _Value; #endregion /// /// GridGetCellValueEventArgs /// /// /// /// public GridGetCellValueEventArgs( GridPanel gridPanel, GridCell gridCell, object value) : base(gridPanel, gridCell) { _Value = value; } #region Public properties /// /// Gets or sets the associated Value /// public object Value { get { return (_Value); } set { _Value = value; } } #endregion } #endregion #region GridGetColumnGroupHeaderStyleEventArgs /// /// GridGetColumnGroupHeaderStyleEventArgs /// public class GridGetColumnGroupHeaderStyleEventArgs : GridEventArgs { #region Private variables private StyleType _StyleType; private ColumnHeaderVisualStyle _Style; private ColumnGroupHeader _GroupHeader; #endregion /// /// GridGetColumnGroupHeaderStyleEventArgs /// /// /// /// /// public GridGetColumnGroupHeaderStyleEventArgs(GridPanel gridPanel, ColumnGroupHeader groupHeader, StyleType styleType, ColumnHeaderVisualStyle style) : base(gridPanel) { _GroupHeader = groupHeader; _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public ColumnHeaderVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } /// /// Gets the associated ColumnGroupHeader /// public ColumnGroupHeader GroupHeader { get { return (_GroupHeader); } } #endregion } #endregion #region GridGetColumnHeaderRowHeaderStyleEventArgs /// /// GridGetColumnHeaderRowHeaderStyleEventArgs /// public class GridGetColumnHeaderRowHeaderStyleEventArgs : GridEventArgs { #region Private variables private StyleType _StyleType; private GridColumnHeader _ColumnHeader; private ColumnHeaderRowVisualStyle _Style; #endregion /// /// GridGetColumnHeaderRowHeaderStyleEventArgs /// /// /// /// /// public GridGetColumnHeaderRowHeaderStyleEventArgs(GridPanel gridPanel, GridColumnHeader columnHeader, StyleType styleType, ColumnHeaderRowVisualStyle style) : base(gridPanel) { _ColumnHeader = columnHeader; _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated ColumnHeader /// public GridColumnHeader ColumnHeader { get { return (_ColumnHeader); } } /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public ColumnHeaderRowVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetColumnHeaderStyleEventArgs /// /// GridGetColumnHeaderStyleEventArgs /// public class GridGetColumnHeaderStyleEventArgs : GridColumnEventArgs { #region Private variables private StyleType _StyleType; private ColumnHeaderVisualStyle _Style; #endregion /// /// GridGetColumnHeaderStyleEventArgs /// /// /// /// /// public GridGetColumnHeaderStyleEventArgs( GridPanel gridPanel, GridColumn gridColumn, StyleType styleType, ColumnHeaderVisualStyle style) : base(gridPanel, gridColumn) { _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public ColumnHeaderVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetColumnGroupHeaderToolTipEventArgs /// /// GridGetColumnGroupHeaderToolTipEventArgs /// public class GridGetColumnGroupHeaderToolTipEventArgs : GridEventArgs { #region Private variables private string _ToolTip; private HeaderArea _HitArea; private ColumnGroupHeader _GroupHeader; private bool _Cancel; #endregion /// /// GridGetColumnGroupHeaderToolTipEventArgs /// /// /// /// /// public GridGetColumnGroupHeaderToolTipEventArgs( GridPanel gridPanel, ColumnGroupHeader groupHeader, HeaderArea hitArea, string toolTip) : base(gridPanel) { _GroupHeader = groupHeader; _HitArea = hitArea; _ToolTip = toolTip; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated ColumnGroupHeader /// public ColumnGroupHeader GroupHeader { get { return (_GroupHeader); } } /// /// Gets the associated Header hit area /// public HeaderArea HitArea { get { return (_HitArea); } } /// /// Gets or sets the associated ToolTip text /// public string ToolTip { get { return (_ToolTip); } set { _ToolTip = value; } } #endregion } #endregion #region GridGetColumnHeaderToolTipEventArgs /// /// GridGetColumnHeaderToolTipEventArgs /// public class GridGetColumnHeaderToolTipEventArgs : GridColumnEventArgs { #region Private variables private string _ToolTip; private HeaderArea _HitArea; private bool _Cancel; #endregion /// /// GridGetColumnHeaderToolTipEventArgs /// /// /// /// /// public GridGetColumnHeaderToolTipEventArgs( GridPanel gridPanel, GridColumn gridColumn, HeaderArea hitArea, string toolTip) : base(gridPanel, gridColumn) { _HitArea = hitArea; _ToolTip = toolTip; } #region Public properties /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated Header hit area /// public HeaderArea HitArea { get { return (_HitArea); } } /// /// Gets or sets the associated ToolTip text /// public string ToolTip { get { return (_ToolTip); } set { _ToolTip = value; } } #endregion } #endregion #region GridGetDisplayRangesEventArgs /// /// GridGetDisplayRangesEventArgs /// public class GridGetDisplayRangesEventArgs : GridEventArgs { #region Private variables private List _DisplayRanges; private GridContainer _GridContainer; #endregion /// /// GridGetDisplayRangesEventArgs /// ///Associated GridPanel ///Associated GridContainer ///List of Row/col ranges to be merge evaluated public GridGetDisplayRangesEventArgs(GridPanel gridPanel, GridContainer gridContainer, List displayRanges) : base(gridPanel) { _GridContainer = gridContainer; _DisplayRanges = displayRanges; } #region Public properties /// /// Gets or sets the DisplayRanges /// public List DisplayRanges { get { return (_DisplayRanges); } set { _DisplayRanges = value; } } /// /// Gets the associated GridContainer /// public GridContainer GridContainer { get { return (_GridContainer); } } #endregion } #endregion #region GridGetFilterRowStyleEventArgs /// /// GridGetFilterRowStyleEventArgs /// public class GridGetFilterRowStyleEventArgs : GridEventArgs { #region Private variables private StyleType _StyleType; private GridFilter _GridFilter; private FilterRowVisualStyle _Style; #endregion /// /// GridGetFilterRowStyleEventArgs /// /// /// /// /// public GridGetFilterRowStyleEventArgs(GridPanel gridPanel, GridFilter gridFilter, StyleType styleType, FilterRowVisualStyle style) : base(gridPanel) { _GridFilter = gridFilter; _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated GridFilter /// public GridFilter GridFilter { get { return (_GridFilter); } } /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public FilterRowVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetFilterColumnHeaderStyleEventArgs /// /// GridGetFilterColumnHeaderStyleEventArgs /// public class GridGetFilterColumnHeaderStyleEventArgs : GridColumnEventArgs { #region Private variables private StyleType _StyleType; private FilterColumnHeaderVisualStyle _Style; #endregion /// /// GridGetFilterColumnHeaderStyleEventArgs /// /// /// /// /// public GridGetFilterColumnHeaderStyleEventArgs(GridPanel gridPanel, GridColumn gridColumn, StyleType styleType, FilterColumnHeaderVisualStyle style) : base(gridPanel, gridColumn) { _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public FilterColumnHeaderVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridConfigureGroupBoxEventArgs /// /// GridConfigureGroupBoxEventArgs /// public class GridConfigureGroupBoxEventArgs : GridEventArgs { #region Private variables private GridGroupByRow _GroupByRow; private GridGroupBox _GridGroupBox; #endregion /// /// GridConfigureGroupBoxEventArgs /// /// /// /// public GridConfigureGroupBoxEventArgs(GridPanel gridPanel, GridGroupByRow groupByRow, GridGroupBox gridGroupBox) : base(gridPanel) { _GroupByRow = groupByRow; _GridGroupBox = gridGroupBox; } #region Public properties /// /// Gets the associated GroupByRow /// public GridGroupByRow GroupByRow { get { return (_GroupByRow); } } /// /// Gets the associated GridColumn /// public GridGroupBox GridGroupBox { get { return (_GridGroupBox); } } #endregion } #endregion #region GridGetGroupHeaderStyleEventArgs /// /// GridGetGroupHeaderStyleEventArgs /// public class GridGetGroupHeaderStyleEventArgs : GridEventArgs { #region Private variables private GridGroup _GridRow; private StyleType _StyleType; private GroupHeaderVisualStyle _Style; #endregion /// /// GridGetGroupHeaderStyleEventArgs /// /// /// /// /// public GridGetGroupHeaderStyleEventArgs( GridPanel gridPanel, GridGroup gridRow, StyleType styleType, GroupHeaderVisualStyle style) : base(gridPanel) { _GridRow = gridRow; _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets the associated Group Header Row /// public GridGroup GridRow { get { return (_GridRow); } } /// /// Gets or sets the associated VisualStyle /// public GroupHeaderVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetMergedCellStyleEventArgs /// /// GridGetMergedCellStyleEventArgs /// public class GridGetMergedCellStyleEventArgs : GridEventArgs { #region Private variables private CellRange _CellRange; private StyleType _StyleType; private CellVisualStyle _Style; #endregion /// /// GridGetMergedCellStyleEventArgs /// /// /// /// /// public GridGetMergedCellStyleEventArgs( GridPanel gridPanel, CellRange cellRange, StyleType styleType, CellVisualStyle style) : base(gridPanel) { _CellRange = cellRange; _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated CellRange /// public CellRange CellRange { get { return (_CellRange); } } /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public CellVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetPanelStyleEventArgs /// /// GridGetPanelStyleEventArgs /// public class GridGetPanelStyleEventArgs : GridEventArgs { #region Private variables private GridPanelVisualStyle _Style; #endregion /// /// GridGetPanelStyleEventArgs /// /// /// public GridGetPanelStyleEventArgs(GridPanel gridPanel, GridPanelVisualStyle style) : base(gridPanel) { _Style = style; } #region Public properties /// /// Gets or sets the associated VisualStyle /// public GridPanelVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetRowCellStyleEventArgs /// /// GridGetRowCellStyleEventArgs /// public class GridGetRowCellStyleEventArgs : GridRowEventArgs { #region Private variables private StyleType _StyleType; private CellVisualStyle _Style; #endregion /// /// GridGetRowCellStyleEventArgs /// /// /// /// /// public GridGetRowCellStyleEventArgs( GridPanel gridPanel, GridContainer gridRow, StyleType styleType, CellVisualStyle style) : base(gridPanel, gridRow) { _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public CellVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetRowHeaderStyleEventArgs /// /// GridGetRowHeaderStyleEventArgs /// public class GridGetRowHeaderStyleEventArgs : GridRowEventArgs { #region Private variables private StyleType _StyleType; private RowHeaderVisualStyle _Style; #endregion /// /// GridGetRowHeaderStyleEventArgs /// /// /// /// /// public GridGetRowHeaderStyleEventArgs( GridPanel gridPanel, GridContainer row, StyleType styleType, RowHeaderVisualStyle style) : base(gridPanel, row) { _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public RowHeaderVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetRowHeaderTextEventArgs /// /// GridGetRowHeaderTextEventArgs /// public class GridGetRowHeaderTextEventArgs : GridRowEventArgs { #region Private variables private string _Text; #endregion /// /// GridGetRowHeaderTextEventArgs /// ///Associated GridPanel ///Associated container row ///Text to display in row header public GridGetRowHeaderTextEventArgs( GridPanel gridPanel, GridContainer row, string text) : base(gridPanel, row) { _Text = text; } #region Public properties /// /// Gets or sets the associated header text /// public string Text { get { return (_Text); } set { _Text = value; } } #endregion } #endregion #region GridGetRowStyleEventArgs /// /// GridGetRowStyleEventArgs /// public class GridGetRowStyleEventArgs : GridRowEventArgs { #region Private variables private StyleType _StyleType; private RowVisualStyle _Style; #endregion /// /// GridGetCellStyleEventArgs /// /// /// /// /// public GridGetRowStyleEventArgs( GridPanel gridPanel, GridContainer gridRow, StyleType styleType, RowVisualStyle style) : base(gridPanel, gridRow) { _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public RowVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } #endregion } #endregion #region GridGetTextRowStyleEventArgs /// /// GridGetTextRowStyleEventArgs /// public class GridGetTextRowStyleEventArgs : GridEventArgs { #region Private variables private StyleType _StyleType; private TextRowVisualStyle _Style; private readonly GridTextRow _GridTextRow; #endregion /// /// GridGetTextRowStyleEventArgs /// /// /// /// /// public GridGetTextRowStyleEventArgs( GridPanel gridPanel, GridTextRow gridTextRow, StyleType styleType, TextRowVisualStyle style) : base(gridPanel) { _GridTextRow = gridTextRow; _StyleType = styleType; _Style = style; } #region Public properties /// /// Gets the associated StyleType /// public StyleType StyleType { get { return (_StyleType); } } /// /// Gets or sets the associated VisualStyle /// public TextRowVisualStyle Style { get { return (_Style); } set { if (value == null) throw new Exception("Style cannot by null."); _Style = value; } } /// /// Gets the associated GridTextRow /// public GridTextRow GridTextRow { get { return (_GridTextRow); } } #endregion } #endregion #region GridEditEventArgs /// /// GridEditEventArgs /// public class GridEditEventArgs : CancelEventArgs { #region Private variables private GridPanel _GridPanel; private GridCell _GridCell; private IGridCellEditControl _EditControl; #endregion /// /// GridEditEventArgs /// public GridEditEventArgs( GridPanel gridPanel, GridCell gridCell, IGridCellEditControl editControl) { _GridPanel = gridPanel; _GridCell = gridCell; _EditControl = editControl; } #region Public properties /// /// Gets the associated GridPanel /// public GridPanel GridPanel { get { return (_GridPanel); } } /// /// Gets the associated cell /// public GridCell GridCell { get { return (_GridCell); } } /// /// Gets the associated cell EditControl /// public IGridCellEditControl EditControl { get { return (_EditControl); } } #endregion } #endregion #region GridEventArgs /// /// GridEventArgs /// public class GridEventArgs : EventArgs { #region Private variables private readonly GridPanel _GridPanel; #endregion /// /// GridEventArgs /// /// public GridEventArgs(GridPanel gridPanel) { _GridPanel = gridPanel; } #region Public properties /// /// Gets the event Grid /// public GridPanel GridPanel { get { return (_GridPanel); } } #endregion } #endregion #region GridCancelEventArgs /// /// GridCancelEventArgs /// public class GridCancelEventArgs : GridEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridEventArgs /// /// public GridCancelEventArgs(GridPanel gridPanel) : base(gridPanel) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridCloseEditEventArgs /// /// GridCloseEditEventArgs /// public class GridCloseEditEventArgs : GridCellEventArgs { /// /// GridCloseEditEventArgs /// public GridCloseEditEventArgs(GridPanel gridPanel, GridCell gridCell) : base(gridPanel, gridCell) { } } #endregion #region GridGetEditorEventArgs /// /// GridGetEditorEventArgs /// public class GridGetEditorEventArgs : GridEventArgs { #region Private variables private readonly GridCell _GridCell; private Type _EditorType; private object[] _EditorParams; #endregion /// /// GridGetEditorEventArgs /// /// /// /// /// public GridGetEditorEventArgs( GridPanel gridPanel, GridCell gridCell, Type editorType, object[] editorParams) : base(gridPanel) { _GridCell = gridCell; _EditorType = editorType; _EditorParams = editorParams; } #region Public properties /// /// Gets the associated GridCell /// public GridCell GridCell { get { return (_GridCell); } } /// /// Gets or sets the associated cell editor Type /// public Type EditorType { get { return (_EditorType); } set { _EditorType = value; } } /// /// Gets or sets the associated cell editor params /// public object[] EditorParams { get { return (_EditorParams); } set { _EditorParams = value; } } #endregion } #endregion #region GridGetRendererEventArgs /// /// GridGetRendererEventArgs /// public class GridGetRendererEventArgs : GridEventArgs { #region Private variables private readonly GridCell _GridCell; private Type _RenderType; private object[] _RenderParams; #endregion /// /// GridGetRendererEventArgs /// /// /// /// /// public GridGetRendererEventArgs( GridPanel gridPanel, GridCell gridCell, Type renderType, object[] renderParams) : base(gridPanel) { _GridCell = gridCell; _RenderType = renderType; _RenderParams = renderParams; } #region Public properties /// /// Gets the associated GridCell /// public GridCell GridCell { get { return (_GridCell); } } /// /// Gets or sets the associated cell Render Type /// public Type RenderType { get { return (_RenderType); } set { _RenderType = value; } } /// /// Gets or sets the associated cell Render params /// public object[] RenderParams { get { return (_RenderParams); } set { _RenderParams = value; } } #endregion } #endregion #region GridGetFilterEditTypeEventArgs /// /// GridGetFilterEditTypeEventArgs /// public class GridGetFilterEditTypeEventArgs : GridColumnEventArgs { #region Private variables private FilterEditType _FilterEditType; #endregion /// /// GridGetFilterEditTypeEventArgs /// /// /// /// public GridGetFilterEditTypeEventArgs( GridPanel gridPanel, GridColumn gridColumn, FilterEditType filterEditType) : base(gridPanel, gridColumn) { _FilterEditType = filterEditType; } #region Public properties /// /// Gets the associated Filter edit type /// public FilterEditType FilterEditType { get { return (_FilterEditType); } set { _FilterEditType = value; } } #endregion } #endregion #region GridGroupChangedEventArgs /// /// GridGroupChangedEventArgs /// public class GridGroupChangedEventArgs : GridEventArgs { #region Private variables private GroupChangedAction _Action; private GridColumn _GridColumn; #endregion /// /// GridRowClickEventArgs /// /// /// /// public GridGroupChangedEventArgs( GridPanel gridPanel, GroupChangedAction action, GridColumn column) : base(gridPanel) { _Action = action; _GridColumn = column; } #region Public properties /// /// Gets the associated GroupChangedAction /// public GroupChangedAction Action { get { return (_Action); } } /// /// Gets the associated GridColumn /// public GridColumn GridColumn { get { return (_GridColumn); } } #endregion } #endregion #region GridGroupHeaderClickEventArgs /// /// GridGroupHeaderClickEventArgs /// public class GridGroupHeaderClickEventArgs : GridEventArgs { #region Private variables private GridGroup _GridGroup; private bool _Cancel; private GroupArea _GroupArea; private MouseEventArgs _MouseEventArgs; #endregion /// /// GridRowClickEventArgs /// /// /// /// /// public GridGroupHeaderClickEventArgs( GridPanel gridPanel, GridGroup gridGroup, GroupArea area, MouseEventArgs e) : base(gridPanel) { _GridGroup = gridGroup; _GroupArea = area; _MouseEventArgs = e; } #region Public properties /// /// Gets the associated GridGroup /// public GridGroup GridGroup { get { return (_GridGroup); } } /// /// Gets or sets whether to cancel the default operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated MouseEventArgs /// public MouseEventArgs MouseEventArgs { get { return (_MouseEventArgs); } } /// /// Gets the associated GroupArea /// public GroupArea GroupArea { get { return (_GroupArea); } } #endregion } #endregion #region GridGroupHeaderDoubleClickEventArgs /// /// GridGroupHeaderDoubleClickEventArgs /// public class GridGroupHeaderDoubleClickEventArgs : GridGroupHeaderClickEventArgs { /// /// GridRowClickEventArgs /// /// /// /// /// public GridGroupHeaderDoubleClickEventArgs( GridPanel gridPanel, GridGroup gridGroup, GroupArea area, MouseEventArgs e) : base(gridPanel, gridGroup, area, e) { } } #endregion #region GridInitEditContextEventArgs /// /// GridInitEditContextEventArgs /// public class GridInitEditContextEventArgs : GridCellEventArgs { #region Private variables private readonly IGridCellEditControl _EditControl; #endregion /// /// GridInitEditContextEventArgs /// /// /// /// public GridInitEditContextEventArgs(GridPanel gridPanel, GridCell gridCell, IGridCellEditControl editControl) : base(gridPanel, gridCell) { _EditControl = editControl; } #region Public properties /// /// Gets the associated GridCell /// public IGridCellEditControl EditControl { get { return (_EditControl); } } #endregion } #endregion #region GridNoRowsTextMarkupLinkClickEventArgs /// /// GridNoRowsMarkupLinkClickEventArgs /// public class GridNoRowsMarkupLinkClickEventArgs : GridEventArgs { #region Private variables private string _HRef; private string _Name; #endregion /// /// GridNoRowsMarkupLinkClickEventArgs /// /// /// /// public GridNoRowsMarkupLinkClickEventArgs( GridPanel gridPanel, string name, string href) : base(gridPanel) { _HRef = href; _Name = name; } #region Public properties /// /// Gets the associated HyperLink HRef /// public string HRef { get { return (_HRef); } } /// /// Gets the associated HyperLink Name /// public string Name { get { return (_Name); } } #endregion } #endregion #region GridPlayingSoundEventArgs /// /// GridPlayingSoundEventArgs /// public class GridPlayingSoundEventArgs : CancelEventArgs { #region Private variables private GridPanel _GridPanel; private object _Item; private PlaySoundContext _PlaySoundContext; #endregion /// /// GridPlayingSoundEventArgs /// /// /// /// public GridPlayingSoundEventArgs( GridPanel panel, object item, PlaySoundContext context) { _GridPanel = panel; _Item = item; _PlaySoundContext = context; } #region Public properties /// /// Gets the GridPanel /// public GridPanel GridPanel { get { return (_GridPanel); } } /// /// Gets the grid "item" (GridCell, GridRow, CellRange, etc) /// associated with the event. /// public object Item { get { return (_Item); } } /// /// Gets the context under which the event is being played. /// public PlaySoundContext PlaySoundContext { get { return (_PlaySoundContext); } } #endregion } #endregion #region GridPostRenderCellEventArgs /// /// GridPostRenderCellEventArgs /// public class GridPostRenderCellEventArgs : GridCellEventArgs { #region Private variables private Rectangle _Bounds; private Graphics _Graphics; private RenderParts _RenderParts; #endregion /// /// GridPostRenderCellEventArgs /// /// /// /// /// /// public GridPostRenderCellEventArgs(Graphics graphics, GridPanel gridPanel, GridCell gridCell, RenderParts parts, Rectangle bounds) : base(gridPanel, gridCell) { _Bounds = bounds; _Graphics = graphics; _RenderParts = parts; } #region Public properties /// /// Gets the cell bounding rectangle /// public Rectangle Bounds { get { return (_Bounds); } } /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } /// /// Gets the cell parts to render /// public RenderParts RenderParts { get { return (_RenderParts); } } #endregion } #endregion #region GridPreRenderCellEventArgs /// /// GridPreRenderCellEventArgs /// public class GridPreRenderCellEventArgs : GridPostRenderCellEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderCellEventArgs /// /// /// /// /// /// public GridPreRenderCellEventArgs(Graphics graphics, GridPanel gridPanel, GridCell gridCell, RenderParts parts, Rectangle bounds) : base(graphics, gridPanel, gridCell, parts, bounds) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPostRenderRowEventArgs /// /// GridPostRenderRowEventArgs /// public class GridPostRenderRowEventArgs : GridRowEventArgs { #region Private variables private Graphics _Graphics; private Rectangle _Bounds; private RenderParts _RenderParts; #endregion /// /// GridPostRenderEventArgs /// /// /// /// /// /// public GridPostRenderRowEventArgs(Graphics graphics, GridPanel gridPanel, GridContainer gridRow, RenderParts parts, Rectangle bounds) : base(gridPanel, gridRow) { _Graphics = graphics; _RenderParts = parts; _Bounds = bounds; } #region Public properties /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } /// /// Gets the bounding rectangle /// public Rectangle Bounds { get { return (_Bounds); } } /// /// Gets the parts to render /// public RenderParts RenderParts { get { return (_RenderParts); } } #endregion } #endregion #region GridPreRenderRowEventArgs /// /// GridPreRenderRowEventArgs /// public class GridPreRenderRowEventArgs : GridPostRenderRowEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderRowEventArgs /// /// /// /// /// /// public GridPreRenderRowEventArgs(Graphics graphics, GridPanel gridPanel, GridContainer gridRow, RenderParts parts, Rectangle bounds) : base(graphics, gridPanel, gridRow, parts, bounds) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPostRenderColumnHeaderEventArgs /// /// GridPostRenderColumnHeaderEventArgs /// public class GridPostRenderColumnHeaderEventArgs : GridEventArgs { #region Private variables private Rectangle _Bounds; private Graphics _Graphics; private GridColumnHeader _ColumnHeader; private GridColumn _GridColumn; private RenderParts _RenderParts; #endregion /// /// GridPostRenderColumnHeaderEventArgs /// /// /// /// /// /// /// public GridPostRenderColumnHeaderEventArgs(Graphics graphics, GridPanel gridPanel, GridColumnHeader columnHeader, GridColumn column, RenderParts parts, Rectangle bounds) : base(gridPanel) { _Bounds = bounds; _Graphics = graphics; _ColumnHeader = columnHeader; _GridColumn = column; _RenderParts = parts; } #region Public properties /// /// Gets the cell bounding rectangle /// public Rectangle Bounds { get { return (_Bounds); } } /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } /// /// Gets the associated GridColumnHeader /// public GridColumnHeader ColumnHeader { get { return (_ColumnHeader); } } /// /// Gets the associated GridColumn (which can be null /// if the ColumnHeader's RowHeader is being rendered) /// public GridColumn GridColumn { get { return (_GridColumn); } } /// /// Gets the cell parts to render /// public RenderParts RenderParts { get { return (_RenderParts); } } #endregion } #endregion #region GridPreRenderColumnHeaderEventArgs /// /// GridPreRenderColumnHeaderEventArgs /// public class GridPreRenderColumnHeaderEventArgs : GridPostRenderColumnHeaderEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderColumnHeaderEventArgs /// /// /// /// /// /// /// public GridPreRenderColumnHeaderEventArgs(Graphics graphics, GridPanel gridPanel, GridColumnHeader header, GridColumn column, RenderParts parts, Rectangle bounds) : base(graphics, gridPanel, header, column, parts, bounds) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPostRenderColumnGroupHeaderEventArgs /// /// GridPostRenderColumnGroupHeaderEventArgs /// public class GridPostRenderColumnGroupHeaderEventArgs : GridEventArgs { #region Private variables private Rectangle _Bounds; private Graphics _Graphics; private GridColumnHeader _ColumnHeader; private ColumnGroupHeader _GroupHeader; private RenderParts _RenderParts; #endregion /// /// GridPostRenderColumnGroupHeaderEventArgs /// /// /// /// /// /// /// public GridPostRenderColumnGroupHeaderEventArgs(Graphics graphics, GridPanel gridPanel, GridColumnHeader columnHeader, ColumnGroupHeader groupHeader, RenderParts parts, Rectangle bounds) : base(gridPanel) { _Bounds = bounds; _Graphics = graphics; _ColumnHeader = columnHeader; _GroupHeader = groupHeader; _RenderParts = parts; } #region Public properties /// /// Gets the cell bounding rectangle /// public Rectangle Bounds { get { return (_Bounds); } } /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } /// /// Gets the associated ColumnHeader /// public GridColumnHeader ColumnHeader { get { return (_ColumnHeader); } } /// /// Gets the associated GroupHeader /// public ColumnGroupHeader GroupHeader { get { return (_GroupHeader); } } /// /// Gets the cell parts to render /// public RenderParts RenderParts { get { return (_RenderParts); } } #endregion } #endregion #region GridPreRenderColumnGroupHeaderEventArgs /// /// GridPreRenderColumnGroupHeaderEventArgs /// public class GridPreRenderColumnGroupHeaderEventArgs : GridPostRenderColumnGroupHeaderEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderColumnGroupHeaderEventArgs /// /// /// /// /// /// /// public GridPreRenderColumnGroupHeaderEventArgs(Graphics graphics, GridPanel gridPanel, GridColumnHeader header, ColumnGroupHeader groupHeader, RenderParts parts, Rectangle bounds) : base(graphics, gridPanel, header, groupHeader, parts, bounds) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPostRenderFilterPopupGripBarEventArgs /// /// GridPostRenderFilterPopupGripBarEventArgs /// public class GridPostRenderFilterPopupGripBarEventArgs : GridColumnEventArgs { #region Private variables private Graphics _Graphics; private FilterPopup _FilterPopup; private Rectangle _Bounds; #endregion /// /// GridPostRenderFilterPopupGripBarEventArgs /// /// /// /// /// public GridPostRenderFilterPopupGripBarEventArgs(Graphics graphics, FilterPopup filterPopup, GridColumn gridColumn, Rectangle bounds) : base(gridColumn.GridPanel, gridColumn) { _Graphics = graphics; _FilterPopup = filterPopup; _Bounds = bounds; } #region Public properties /// /// Gets the GripBar bounding rectangle /// public Rectangle Bounds { get { return (_Bounds); } } /// /// Gets the FilterPopup object /// public FilterPopup FilterPopup { get { return (_FilterPopup); } } /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } #endregion } #endregion #region GridPreRenderFilterPopupGripBarEventArgs /// /// GridPreRenderFilterPopupGripBarEventArgs /// public class GridPreRenderFilterPopupGripBarEventArgs : GridPostRenderFilterPopupGripBarEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderFilterPopupGripBarEventArgs /// /// /// /// /// public GridPreRenderFilterPopupGripBarEventArgs(Graphics graphics, FilterPopup filterPopup, GridColumn gridColumn, Rectangle bounds) : base(graphics, filterPopup, gridColumn, bounds) { } #region Public properties /// /// Gets or sets whether to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPostRenderFilterRowEventArgs /// /// GridPostRenderFilterRowEventArgs /// public class GridPostRenderFilterRowEventArgs : GridEventArgs { #region Private variables private Rectangle _Bounds; private Graphics _Graphics; private GridFilter _GridFilter; private GridColumn _GridColumn; private RenderParts _RenderParts; #endregion /// /// GridPostRenderFilterRowEventArgs /// /// /// /// /// /// /// public GridPostRenderFilterRowEventArgs(Graphics graphics, GridPanel gridPanel, GridFilter filter, GridColumn column, RenderParts parts, Rectangle bounds) : base(gridPanel) { _Bounds = bounds; _Graphics = graphics; _GridFilter = filter; _GridColumn = column; _RenderParts = parts; } #region Public properties /// /// Gets the bounding rectangle /// public Rectangle Bounds { get { return (_Bounds); } } /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } /// /// Gets the associated GridFilter /// public GridFilter GridFilter { get { return (_GridFilter); } } /// /// Gets the associated GridColumn (which can be null /// if the Filter's RowHeader is being rendered) /// public GridColumn GridColumn { get { return (_GridColumn); } } /// /// Gets the parts to render /// public RenderParts RenderParts { get { return (_RenderParts); } } #endregion } #endregion #region GridPreRenderFilterRowEventArgs /// /// GridPreRenderFilterRowEventArgs /// public class GridPreRenderFilterRowEventArgs : GridPostRenderFilterRowEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderFilterRowEventArgs /// /// /// /// /// /// /// public GridPreRenderFilterRowEventArgs(Graphics graphics, GridPanel gridPanel, GridFilter filter, GridColumn column, RenderParts parts, Rectangle bounds) : base(graphics, gridPanel, filter, column, parts, bounds) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPostRenderGroupBoxConnectorEventArgs /// /// GridPostRenderGroupBoxConnectorEventArgs /// public class GridPostRenderGroupBoxConnectorEventArgs : GridEventArgs { #region Private variables private Graphics _Graphics; private GridGroupByRow _GroupByRow; private GridGroupBox _GridGroupBox1; private GridGroupBox _GridGroupBox2; #endregion /// /// GridPostRenderGroupBoxConnectorEventArgs /// /// /// /// /// /// public GridPostRenderGroupBoxConnectorEventArgs(Graphics graphics, GridPanel gridPanel, GridGroupByRow groupByRow, GridGroupBox groupBox1, GridGroupBox groupBox2) : base(gridPanel) { _Graphics = graphics; _GroupByRow = groupByRow; _GridGroupBox1 = groupBox1; _GridGroupBox2 = groupBox2; } #region Public properties /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } /// /// Gets the associated GroupByRow /// public GridGroupByRow GroupByRow { get { return (_GroupByRow); } } /// /// Gets the first associated GridGroupBox /// public GridGroupBox GridGroupBox1 { get { return (_GridGroupBox1); } } /// /// Gets the second associated GridGroupBox /// public GridGroupBox GridGroupBox2 { get { return (_GridGroupBox2); } } #endregion } #endregion #region GridPreRenderGroupBoxConnectorEventArgs /// /// GridPreRenderGroupBoxConnectorEventArgs /// public class GridPreRenderGroupBoxConnectorEventArgs : GridPostRenderGroupBoxConnectorEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderGroupBoxConnectorEventArgs /// /// /// /// /// /// public GridPreRenderGroupBoxConnectorEventArgs(Graphics graphics, GridPanel gridPanel, GridGroupByRow groupByRow, GridGroupBox groupBox1, GridGroupBox groupBox2) : base(graphics, gridPanel, groupByRow, groupBox1, groupBox2) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPostRenderGroupBoxEventArgs /// /// GridPostRenderGroupBoxEventArgs /// public class GridPostRenderGroupBoxEventArgs : GridEventArgs { #region Private variables private Graphics _Graphics; private Rectangle _Bounds; private RenderParts _RenderParts; private GridGroupByRow _GroupByRow; private GridGroupBox _GridGroupBox; #endregion /// /// GridPostRenderGroupBoxEventArgs /// /// /// /// /// /// /// public GridPostRenderGroupBoxEventArgs(Graphics graphics, GridPanel gridPanel, GridGroupByRow groupByRow, GridGroupBox gridGroupBox, RenderParts parts, Rectangle bounds) : base(gridPanel) { _Graphics = graphics; _GroupByRow = groupByRow; _GridGroupBox = gridGroupBox; _RenderParts = parts; _Bounds = bounds; } #region Public properties /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } /// /// Gets the bounding rectangle /// public Rectangle Bounds { get { return (_Bounds); } } /// /// Gets the parts to render /// public RenderParts RenderParts { get { return (_RenderParts); } } /// /// Gets the associated GroupByRow /// public GridGroupByRow GroupByRow { get { return (_GroupByRow); } } /// /// Gets the associated GridGroupBox /// public GridGroupBox GridGroupBox { get { return (_GridGroupBox); } } #endregion } #endregion #region GridPreRenderGroupBoxEventArgs /// /// GridPreRenderGroupBoxEventArgs /// public class GridPreRenderGroupBoxEventArgs : GridPostRenderGroupBoxEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderGroupBoxEventArgs /// /// /// /// /// /// /// public GridPreRenderGroupBoxEventArgs(Graphics graphics, GridPanel gridPanel, GridGroupByRow groupByRow, GridGroupBox gridGroupBox, RenderParts parts, Rectangle bounds) : base(graphics, gridPanel, groupByRow, gridGroupBox, parts, bounds) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPostRenderTextRowEventArgs /// /// GridPostRenderTextRowEventArgs /// public class GridPostRenderTextRowEventArgs : GridEventArgs { #region Private variables private Graphics _Graphics; private Rectangle _Bounds; private RenderParts _RenderParts; private GridTextRow _GridTextRow; #endregion /// /// GridPostRenderTextRowEventArgs /// /// /// /// /// /// public GridPostRenderTextRowEventArgs(Graphics graphics, GridPanel gridPanel, GridTextRow gridTextRow, RenderParts parts, Rectangle bounds) : base(gridPanel) { _Graphics = graphics; _RenderParts = parts; _Bounds = bounds; _GridTextRow = gridTextRow; } #region Public properties /// /// Gets the Graphics object /// public Graphics Graphics { get { return (_Graphics); } } /// /// Gets the bounding rectangle /// public Rectangle Bounds { get { return (_Bounds); } } /// /// Gets the parts to render /// public RenderParts RenderParts { get { return (_RenderParts); } } /// /// Gets the associated GridTextRow /// public GridTextRow GridTextRow { get { return (_GridTextRow); } } #endregion } #endregion #region GridPreRenderTextRowEventArgs /// /// GridPreRenderTextRowEventArgs /// public class GridPreRenderTextRowEventArgs : GridPostRenderTextRowEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridPreRenderTextRowEventArgs /// /// /// /// /// /// public GridPreRenderTextRowEventArgs(Graphics graphics, GridPanel gridPanel, GridTextRow gridTextRow, RenderParts parts, Rectangle bounds) : base(graphics, gridPanel, gridTextRow, parts, bounds) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridPreviewKeyDownEventArgs /// /// PreviewKeyDown event, with the ability to specify that the key has been handled /// public class GridPreviewKeyDownEventArgs : PreviewKeyDownEventArgs { #region Private variables private bool _Handled; #endregion /// /// PreviewKeyDown event, with the ability to specify that the key has been handled /// /// public GridPreviewKeyDownEventArgs(Keys keyData) : base(keyData) { } #region Public properties /// /// Gets or sets whether the key was handled /// public bool Handled { get { return (_Handled); } set { _Handled = value; } } #endregion } #endregion #region GridRefreshFilterEventArgs /// /// GridRefreshFilterEventArgs /// public class GridRefreshFilterEventArgs : GridCancelEventArgs { /// /// GridRefreshFilterEventArgs /// /// public GridRefreshFilterEventArgs(GridPanel gridPanel) : base(gridPanel) { } } #endregion #region GridRowActivatedEventArgs /// /// GridRowActivatedEventArgs /// public class GridRowActivatedEventArgs : GridEventArgs { #region Private variables private readonly GridContainer _OldActiveRow; private readonly GridContainer _NewActiveRow; #endregion /// /// GridRowActivatedEventArgs /// /// /// /// public GridRowActivatedEventArgs(GridPanel gridPanel, GridContainer oldRow, GridContainer newRow) : base(gridPanel) { _OldActiveRow = oldRow; _NewActiveRow = newRow; } #region Public properties /// /// Gets the old (previous) ActiveRow /// public GridContainer OldActiveRow { get { return (_OldActiveRow); } } /// /// Gets the new (current) ActiveRow /// public GridContainer NewActiveRow { get { return (_NewActiveRow); } } #endregion } #endregion #region GridRowActivatingEventArgs /// /// GridRowActivatingEventArgs /// public class GridRowActivatingEventArgs : GridRowActivatedEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridRowActivatingEventArgs /// /// /// /// public GridRowActivatingEventArgs(GridPanel gridPanel, GridContainer oldRow, GridContainer newRow) : base(gridPanel, oldRow, newRow) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridRowAddedEventArgs /// /// GridRowAddedEventArgs /// public class GridRowAddedEventArgs : GridEventArgs { #region Private variables private int _Index; #endregion /// /// GridRowAddedEventArgs /// /// /// public GridRowAddedEventArgs(GridPanel gridPanel, int index) : base(gridPanel) { _Index = index; } #region Public properties /// /// Gets the associated GridPanel.Rows /// index where the row is to be inserted /// public int Index { get { return (_Index); } protected set { _Index = value; } } #endregion } #endregion #region GridRowAddingEventArgs /// /// GridRowAddingEventArgs /// public class GridRowAddingEventArgs : GridRowAddedEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridRowAddingEventArgs /// /// /// public GridRowAddingEventArgs(GridPanel gridPanel, int index) : base(gridPanel, index) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated GridPanel.Rows /// index where the row is to be inserted /// public new int Index { get { return (base.Index); } set { base.Index = value; } } #endregion } #endregion #region GridRowCancelEventArgs /// /// GridRowCancelEventArgs /// public class GridRowCancelEventArgs : GridRowEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridRowCancelEventArgs /// /// /// public GridRowCancelEventArgs( GridPanel gridPanel, GridContainer gridRow) : base(gridPanel, gridRow) { } #region Public properties /// /// Gets or sets whether to cancel the operation. /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridRowDeletedEventArgs /// /// GridRowMovedEventArgs /// public class GridRowDeletedEventArgs : GridEventArgs { #region Private variables private readonly SelectedElements _SelectedRows; #endregion /// /// GridRowDeletedEventArgs /// /// /// public GridRowDeletedEventArgs(GridPanel gridPanel, SelectedElements selRows) : base(gridPanel) { _SelectedRows = selRows; } #region Public properties /// /// Gets the associated selection of row indices to delete /// public SelectedElements SelectedRows { get { return (_SelectedRows); } } #endregion } #endregion #region GridRowDeletingEventArgs /// /// GridRowDeletingEventArgs /// public class GridRowDeletingEventArgs : GridRowDeletedEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridRowDeletingEventArgs /// /// /// public GridRowDeletingEventArgs(GridPanel gridPanel, SelectedElements selRows) : base(gridPanel, selRows) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridRowEventArgs /// /// GridRowEventArgs /// public class GridRowEventArgs : GridEventArgs { #region Private variables private GridContainer _GridRow; #endregion /// /// GridRowEventArgs /// /// /// public GridRowEventArgs(GridPanel gridPanel, GridContainer gridRow) : base(gridPanel) { _GridRow = gridRow; } #region Public properties /// /// Gets the associated GridRow /// public GridContainer GridRow { get { return (_GridRow); } } #endregion } #endregion #region GridRowClickEventArgs /// /// GridRowClickEventArgs /// public class GridRowClickEventArgs : GridRowEventArgs { #region Private variables private bool _Cancel; private RowArea _RowArea; private MouseEventArgs _MouseEventArgs; #endregion /// /// GridRowClickEventArgs /// /// /// /// /// public GridRowClickEventArgs( GridPanel gridPanel, GridRow gridRow, RowArea rowArea, MouseEventArgs e) : base(gridPanel, gridRow) { _RowArea = rowArea; _MouseEventArgs = e; } #region Public properties /// /// Gets or sets whether to cancel the default operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated MouseEventArgs /// public MouseEventArgs MouseEventArgs { get { return (_MouseEventArgs); } } /// /// Gets the associated RowArea /// public RowArea RowArea { get { return (_RowArea); } } #endregion } #endregion #region GridRowDoubleClickEventArgs /// /// GridRowDoubleClickEventArgs /// public class GridRowDoubleClickEventArgs : GridRowClickEventArgs { /// /// GridRowDoubleClickEventArgs /// /// /// /// /// public GridRowDoubleClickEventArgs( GridPanel gridPanel, GridRow gridRow, RowArea rowArea, MouseEventArgs e) : base(gridPanel, gridRow, rowArea, e) { } } #endregion #region GridGetDetailRowHeightEventArgs /// /// GridGetDetailRowHeightEventArgs /// public class GridGetDetailRowHeightEventArgs : EventArgs { #region Private variables private GridRow _GridRow; private GridPanel _GridPanel; private int _PreDetailHeight; private int _PostDetailHeight; private GridLayoutInfo _LayoutInfo; private Size _SizeNeeded; #endregion /// /// GridGetDetailRowHeightEventArgs /// ///Associated GridPanel ///Associated container row /// /// /// /// public GridGetDetailRowHeightEventArgs(GridPanel gridPanel, GridRow gridRow, GridLayoutInfo layoutInfo, Size sizeNeeded, int preHeight, int postHeight) { _GridPanel = gridPanel; _GridRow = gridRow; _SizeNeeded = sizeNeeded; _LayoutInfo = layoutInfo; _PreDetailHeight = preHeight; _PostDetailHeight = postHeight; } #region Public properties /// /// Gets the event Grid /// public GridPanel GridPanel { get { return (_GridPanel); } } /// /// Gets the associated GridRow /// public GridRow GridRow { get { return (_GridRow); } } /// /// Gets or sets the associated row PreDetail Height /// public int PreDetailHeight { get { return (_PreDetailHeight); } set { _PreDetailHeight = value; } } /// /// Gets or sets the associated row PostDetail Height /// public int PostDetailHeight { get { return (_PostDetailHeight); } set { _PostDetailHeight = value; } } /// /// Gets the associated row LayoutInfo /// public GridLayoutInfo LayoutInfo { get { return (_LayoutInfo); } } /// /// Gets or sets the associated row's needed size /// public Size SizeNeeded { get { return (_SizeNeeded); } set { _SizeNeeded = value; } } #endregion } #endregion #region GridGetGroupIdEventArgs /// /// GridGetGroupIdEventArgs /// public class GridGetGroupIdEventArgs : EventArgs { #region Private variables private GridPanel _GridPanel; private GridElement _GridItem; private GridColumn _GridColumn; private object _GroupId; #endregion /// /// GridGetGroupIdEventArgs /// ///Associated GridPanel ///Associated grid element ///Associated grid column ///Associated Group identifier public GridGetGroupIdEventArgs( GridPanel gridPanel, GridElement gridItem, GridColumn column, object groupId) { _GridPanel = gridPanel; _GridColumn = column; _GridItem = gridItem; _GroupId = groupId; } #region Public properties /// /// Gets the event Grid /// public GridPanel GridPanel { get { return (_GridPanel); } } /// /// Gets the associated GridElement /// public GridElement GridItem { get { return (_GridItem); } } /// /// Gets the associated GridColumn /// public GridColumn GridColumn { get { return (_GridColumn); } } /// /// Gets or sets the associated row Group Identifier /// public object GroupId { get { return (_GroupId); } set { _GroupId = value; } } #endregion } #endregion #region GridRowHeaderClickEventArgs /// /// GridRowHeaderClickEventArgs /// public class GridRowHeaderClickEventArgs : GridRowEventArgs { #region Private variables private bool _Cancel; private MouseEventArgs _MouseEventArgs; #endregion /// /// GridRowHeaderClickEventArgs /// /// /// /// public GridRowHeaderClickEventArgs( GridPanel gridPanel, GridContainer row, MouseEventArgs e) : base(gridPanel, row) { _MouseEventArgs = e; } #region Public properties /// /// Gets the associated MouseEventArgs /// public MouseEventArgs MouseEventArgs { get { return (_MouseEventArgs); } } /// /// Gets or sets whether to cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridRowHeaderDoubleClickEventArgs /// /// GridRowHeaderDoubleClickEventArgs /// public class GridRowHeaderDoubleClickEventArgs : GridRowHeaderClickEventArgs { /// /// GridRowHeaderDoubleClickEventArgs /// /// /// /// public GridRowHeaderDoubleClickEventArgs( GridPanel gridPanel, GridContainer row, MouseEventArgs e) : base(gridPanel, row, e) { } } #endregion #region GridRowInfoEnterEventArgs /// /// GridRowInfoEnterEventArgs /// public class GridRowInfoEnterEventArgs : GridRowEventArgs { #region Private variables private bool _Cancel; private Point _Location; #endregion /// /// GridRowInfoEnterEventArgs /// /// /// /// public GridRowInfoEnterEventArgs( GridPanel gridPanel, GridRow gridRow, Point pt) : base(gridPanel, gridRow) { _Location = pt; } #region Public properties /// /// Gets or sets whether to cancel the default operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated event Location /// public Point Location { get { return (_Location); } } #endregion } #endregion #region GridRowInfoLeaveEventArgs /// /// GridRowInfoLeaveEventArgs /// public class GridRowInfoLeaveEventArgs : GridRowEventArgs { /// /// GridRowInfoLeaveEventArgs /// /// /// public GridRowInfoLeaveEventArgs( GridPanel gridPanel, GridRow gridRow) : base(gridPanel, gridRow) { } } #endregion #region GridRowLoadedEventArgs /// /// GridRowLoadedEventArgs /// public class GridRowLoadedEventArgs : GridEventArgs { #region Private variables private GridRow _GridRow; #endregion /// /// GridRowLoadedEventArgs /// /// /// public GridRowLoadedEventArgs(GridPanel gridPanel, GridRow row) : base(gridPanel) { _GridRow = row; } #region Public properties /// /// Gets a reference to the loaded GridRow /// public GridRow GridRow { get { return (_GridRow); } } #endregion } #endregion #region GridRowMouseEventArgs /// /// GridRowMouseEventArgs /// public class GridRowMouseEventArgs : MouseEventArgs { #region Private variables private readonly GridPanel _GridPanel; private readonly GridContainer _GridRow; private readonly RowArea _RowArea; #endregion /// /// GridRowMouseEventArgs /// /// /// /// /// public GridRowMouseEventArgs(GridPanel gridPanel, GridContainer gridRow, MouseEventArgs ev, RowArea rowArea) : base(ev.Button, ev.Clicks, ev.X, ev.Y, ev.Delta) { _GridPanel = gridPanel; _GridRow = gridRow; _RowArea = rowArea; } #region Public properties /// /// Gets the associated GridRow /// public GridContainer GridRow { get { return (_GridRow); } } /// /// Gets the associated GridPanel /// public GridPanel GridPanel { get { return (_GridPanel); } } /// /// Gets the associated RowArea /// public RowArea RowArea { get { return (_RowArea); } } #endregion } #endregion #region GridRowMovedEventArgs /// /// GridRowMovedEventArgs /// public class GridRowMovedEventArgs : GridRowEventArgs { #region Private variables private readonly GridContainer _GridContainer; #endregion /// /// GridRowMovedEventArgs /// /// /// /// public GridRowMovedEventArgs(GridPanel gridPanel, GridContainer gridContainer, GridContainer gridRow) : base(gridPanel, gridRow) { _GridContainer = gridContainer; } #region Public properties /// /// Gets the associated GridContainer /// public GridContainer GridContainer { get { return (_GridContainer); } } #endregion } #endregion #region GridRowMovingEventArgs /// /// GridRowMovingEventArgs /// public class GridRowMovingEventArgs : GridRowCancelEventArgs { #region Private variables private int _SrcIndex; private GridContainer _SrcContainer; private int _DestIndex; private GridContainer _DestContainer; #endregion /// /// GridRowMovingEventArgs /// /// /// /// /// /// /// public GridRowMovingEventArgs(GridPanel gridPanel, GridRow gridRow, GridContainer srcCont, int srcIndex, GridContainer destCont, int destIndex) : base(gridPanel, gridRow) { _SrcIndex = srcIndex; _SrcContainer = srcCont; _DestIndex = destIndex; _DestContainer = destCont; } #region Public properties /// /// Gets or sets the Destination Container for the row /// being moved. /// public GridContainer DestContainer { get { return (_DestContainer); } set { _DestContainer = value; } } /// /// Gets or sets the Destination index for the row /// being moved. /// public int DestIndex { get { return (_DestIndex); } set { _DestIndex = value; } } /// /// Gets the Source Container of the row /// being moved. /// public GridContainer SrcContainer { get { return (_SrcContainer); } } /// /// Gets the Source index of the row being moved. /// public int SrcIndex { get { return (_SrcIndex); } } #endregion } #endregion #region GridRowsPurgingEventArgs /// /// GridRowsPurgingEventArgs /// public class GridRowsPurgingEventArgs : GridRowCancelEventArgs { #region Private variables private bool _IncludeNestedRows; #endregion /// /// GridRowPurgeEventArgs /// /// /// /// public GridRowsPurgingEventArgs( GridPanel gridPanel, GridContainer gridRow, bool includeNestedRows) : base(gridPanel, gridRow) { _IncludeNestedRows = includeNestedRows; } #region Public properties /// /// Gets or sets whether to include the associated GridPanel's /// nested rows when purging deleted rows. /// public bool IncludeNestedRows { get { return (_IncludeNestedRows); } set { _IncludeNestedRows = value; } } #endregion } #endregion #region GridRowRestoredEventArgs /// /// GridRowRestoredEventArgs /// public class GridRowRestoredEventArgs : GridRowDeletedEventArgs { /// /// GridRowRestoredEventArgs /// /// /// public GridRowRestoredEventArgs(GridPanel gridPanel, SelectedElements selRows) : base(gridPanel, selRows) { } } #endregion #region GridRowRestoringEventArgs /// /// GridRowRestoringEventArgs /// public class GridRowRestoringEventArgs : GridRowDeletingEventArgs { /// /// GridRowRestoringEventArgs /// /// /// public GridRowRestoringEventArgs(GridPanel gridPanel, SelectedElements selRows) : base(gridPanel, selRows) { } } #endregion #region GridRowSetDefaultValuesEventArgs /// /// GridRowSetDefaultValuesEventArgs /// public class GridRowSetDefaultValuesEventArgs : GridEventArgs { #region Private variables private readonly GridRow _GridRow; private readonly NewRowContext _NewRowContext; #endregion /// /// GridRowDeletedEventArgs /// /// /// /// public GridRowSetDefaultValuesEventArgs( GridPanel gridPanel, GridRow gridRow, NewRowContext context) : base(gridPanel) { _GridRow = gridRow; _NewRowContext = context; } #region Public properties /// /// Gets the associated GridRow /// public GridRow GridRow { get { return (_GridRow); } } /// /// Gets the associated context under which /// the new row data needs to be initialized /// public NewRowContext NewRowContext { get { return (_NewRowContext); } } #endregion } #endregion #region GridRowValidatedEventArgs /// /// GridRowValidatedEventArgs /// public class GridRowValidatedEventArgs : GridEventArgs { #region Private variables private readonly GridRow _GridRow; #endregion /// /// GridRowDeletedEventArgs /// /// /// public GridRowValidatedEventArgs(GridPanel gridPanel, GridRow gridRow) : base(gridPanel) { _GridRow = gridRow; } #region Public properties /// /// Gets the associated GridRow /// public GridRow GridRow { get { return (_GridRow); } } #endregion } #endregion #region GridRowValidatingEventArgs /// /// GridRowValidatingEventArgs /// public class GridRowValidatingEventArgs : GridRowValidatedEventArgs { #region Private variables private bool _Cancel; #endregion /// /// GridRowValidatingEventArgs /// /// /// public GridRowValidatingEventArgs(GridPanel gridPanel, GridRow gridRow) : base(gridPanel, gridRow) { } #region Public properties /// /// Gets or sets whether /// to cancel the operation entirely /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } #endregion } #endregion #region GridScrollEventArgs /// /// GridScrollEventArgs /// public class GridScrollEventArgs : GridEventArgs { #region Private variables private ScrollEventArgs _ScrollEventArgs; #endregion /// /// GridScrollEventArgs /// /// /// public GridScrollEventArgs( GridPanel gridPanel, ScrollEventArgs scrollEventArgs) : base(gridPanel) { _ScrollEventArgs = scrollEventArgs; } #region Public properties /// /// Gets the scroll event args /// public ScrollEventArgs ScrollEventArgs { get { return (_ScrollEventArgs); } } #endregion } #endregion #region GridSelectionChangingEventArgs /// /// GridSelectionChangingEventArgs /// public class GridSelectionChangingEventArgs : GridEventArgs { #region Private variables private SelectedElements _SelectedElements; private int _Index; private int _Count; private bool _Selected; private bool _Cancel; #endregion /// /// GridSelectionChangingEventArgs /// /// /// /// /// /// public GridSelectionChangingEventArgs(GridPanel gridPanel, SelectedElements selectedElements, int index, int count, bool selected) : base (gridPanel) { _SelectedElements = selectedElements; _Index = index; _Count = count; _Selected = selected; } #region Public properties /// /// Gets or sets whether to Cancel the operation /// public bool Cancel { get { return (_Cancel); } set { _Cancel = value; } } /// /// Gets the associated SelectedElements collection /// public SelectedElements SelectedElements { get { return (_SelectedElements); } set { _SelectedElements = value; } } /// /// Gets the associated starting selection index /// public int Index { get { return (_Index); } } /// /// Gets the associated starting selection count /// public int Count { get { return (_Count); } } /// /// Gets the selected state (true/selected, false/cleared) /// public bool Selected { get { return (_Selected); } } #endregion } #endregion #region GridTextRowEventArgs /// /// GridTextRowEventArgs /// public class GridTextRowEventArgs : GridEventArgs { #region Private variables private readonly GridTextRow _GridTextRow; private MouseEventArgs _MouseEventArgs; #endregion /// /// GridTextRowEventArgs /// /// /// /// public GridTextRowEventArgs( GridPanel gridPanel, GridTextRow textRow, MouseEventArgs e) : base(gridPanel) { _GridTextRow = textRow; _MouseEventArgs = e; } #region Public properties /// /// Gets the associated GridTextRow /// public GridTextRow GridTextRow { get { return (_GridTextRow); } } /// /// Gets the associated MouseEventArgs /// public MouseEventArgs MouseEventArgs { get { return (_MouseEventArgs); } } #endregion } #endregion #region GridTextRowMarkupLinkClickEventArgs /// /// GridTextRowMarkupLinkClickEventArgs /// public class GridTextRowMarkupLinkClickEventArgs : GridEventArgs { #region Private variables private string _HRef; private string _Name; private readonly GridTextRow _GridTextRow; #endregion /// /// GridTextRowMarkupLinkClickEventArgs /// /// /// /// /// public GridTextRowMarkupLinkClickEventArgs(GridPanel gridPanel, GridTextRow gridTextRow, string name, string href) : base(gridPanel) { _GridTextRow = gridTextRow; _HRef = href; _Name = name; } #region Public properties /// /// Gets the associated HyperLink HRef /// public string HRef { get { return (_HRef); } } /// /// Gets the associated HyperLink Name /// public string Name { get { return (_Name); } } /// /// Gets the associated GridTextRow /// public GridTextRow GridTextRow { get { return (_GridTextRow); } } #endregion } #endregion #region GridUpdateCellDisplayRangesEventArgs /// /// GridUpdateCellDisplayRangesEventArgs /// public class GridUpdateCellDisplayRangesEventArgs : GridEventArgs { #region Private variables private DisplayRange _DisplayRange; private List _CellRanges; private GridContainer _GridContainer; #endregion /// /// GridUpdateCellDisplayRangesEventArgs /// ///Associated GridPanel ///Associated GridContainer ///Row/col range being merge evaluated ///List of CellRanges public GridUpdateCellDisplayRangesEventArgs(GridPanel gridPanel, GridContainer gridContainer, DisplayRange displayRange, List cellRanges) : base(gridPanel) { _GridContainer = gridContainer; _DisplayRange = displayRange; _CellRanges = cellRanges; } #region Public properties /// /// Gets or sets the CellRanges /// public List CellRanges { get { return (_CellRanges); } set { _CellRanges = value; } } /// /// Gets the current DisplayRange (row/col range /// being processed / merged evaluated) /// public DisplayRange DisplayRange { get { return (_DisplayRange); } } /// /// Gets the GridContainer /// public GridContainer GridContainer { get { return (_GridContainer); } } #endregion } #endregion #region GridVirtualRowEventArgs /// /// GridVirtualRowEventArgs /// public class GridVirtualRowEventArgs : GridEventArgs { #region Private variables private GridRow _GridRow; private int _Index; #endregion /// /// GridVirtualRowEventArgs /// /// /// /// public GridVirtualRowEventArgs(GridPanel gridPanel, GridRow gridRow, int index) : base(gridPanel) { _GridRow = gridRow; _Index = index; } #region Public properties /// /// Gets the GridRow /// public GridRow GridRow { get { return (_GridRow); } } /// /// Gets the associated row index /// public int Index { get { return (_Index); } } #endregion } #endregion #endregion }