Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridAddNewRow.cs / 1 / DataGridAddNewRow.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System.Runtime.Remoting; using System.Diagnostics; using System; using System.Windows.Forms; using System.ComponentModel; using System.Drawing; using Microsoft.Win32; ////// This class fully encapsulates the painting logic for an addnew row /// appearing in a DataGrid. /// internal class DataGridAddNewRow : DataGridRow { private bool dataBound = false; public DataGridAddNewRow(DataGrid dGrid, DataGridTableStyle gridTable, int rowNum) : base(dGrid, gridTable, rowNum) { } // =----------------------------------------------------------------- // = Methods // =----------------------------------------------------------------- ////// Since the DataView does not return a valid DataRow for /// a newly added row, the DataGrid sets this property to /// true to signal that the AddNewRow can safely render /// row contents and permit editing, etc because a DataRecord /// exists in the cursor that created this row. /// public bool DataBound { get { return dataBound; } set { dataBound = value; } } public override void OnEdit() { if (!DataBound) { DataGrid.AddNewRow(); } } public override void OnRowLeave() { if (DataBound) DataBound = false; } // the addNewRow has nothing to do with losing focus // internal override void LoseChildFocus(Rectangle rowHeader, bool alignToRight) { } // the newDataRow has nothing to do with TAB keys // internal override bool ProcessTabKey(Keys keyData, Rectangle rowHeaders, bool alignToRight) { return false; } ////// Paints the row. /// public override int Paint(Graphics g, Rectangle bounds, Rectangle trueRowBounds, int firstVisibleColumn, int columnCount) { return Paint(g, bounds, trueRowBounds, firstVisibleColumn, columnCount, false); } public override int Paint(Graphics g, Rectangle bounds, Rectangle trueRowBounds, int firstVisibleColumn, int columnCount, bool alignToRight) { Rectangle dataBounds = bounds; DataGridLineStyle gridStyle; if (this.dgTable.IsDefault) gridStyle = this.DataGrid.GridLineStyle; else gridStyle = this.dgTable.GridLineStyle; int bWidth = this.DataGrid == null ? 0 : gridStyle == DataGridLineStyle.Solid ? 1 : 0; dataBounds.Height -= bWidth; int cx = base.PaintData(g, dataBounds, firstVisibleColumn, columnCount, alignToRight); if (bWidth > 0) PaintBottomBorder(g, bounds, cx, bWidth, alignToRight); return cx; } protected override void PaintCellContents(Graphics g, Rectangle cellBounds, DataGridColumnStyle column, Brush backBr, Brush foreBrush, bool alignToRight) { if (DataBound) { CurrencyManager listManager = DataGrid.ListManager; column.Paint(g, cellBounds, listManager, this.RowNumber, alignToRight); } else { base.PaintCellContents(g, cellBounds, column, backBr, foreBrush, alignToRight); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System.Runtime.Remoting; using System.Diagnostics; using System; using System.Windows.Forms; using System.ComponentModel; using System.Drawing; using Microsoft.Win32; ////// This class fully encapsulates the painting logic for an addnew row /// appearing in a DataGrid. /// internal class DataGridAddNewRow : DataGridRow { private bool dataBound = false; public DataGridAddNewRow(DataGrid dGrid, DataGridTableStyle gridTable, int rowNum) : base(dGrid, gridTable, rowNum) { } // =----------------------------------------------------------------- // = Methods // =----------------------------------------------------------------- ////// Since the DataView does not return a valid DataRow for /// a newly added row, the DataGrid sets this property to /// true to signal that the AddNewRow can safely render /// row contents and permit editing, etc because a DataRecord /// exists in the cursor that created this row. /// public bool DataBound { get { return dataBound; } set { dataBound = value; } } public override void OnEdit() { if (!DataBound) { DataGrid.AddNewRow(); } } public override void OnRowLeave() { if (DataBound) DataBound = false; } // the addNewRow has nothing to do with losing focus // internal override void LoseChildFocus(Rectangle rowHeader, bool alignToRight) { } // the newDataRow has nothing to do with TAB keys // internal override bool ProcessTabKey(Keys keyData, Rectangle rowHeaders, bool alignToRight) { return false; } ////// Paints the row. /// public override int Paint(Graphics g, Rectangle bounds, Rectangle trueRowBounds, int firstVisibleColumn, int columnCount) { return Paint(g, bounds, trueRowBounds, firstVisibleColumn, columnCount, false); } public override int Paint(Graphics g, Rectangle bounds, Rectangle trueRowBounds, int firstVisibleColumn, int columnCount, bool alignToRight) { Rectangle dataBounds = bounds; DataGridLineStyle gridStyle; if (this.dgTable.IsDefault) gridStyle = this.DataGrid.GridLineStyle; else gridStyle = this.dgTable.GridLineStyle; int bWidth = this.DataGrid == null ? 0 : gridStyle == DataGridLineStyle.Solid ? 1 : 0; dataBounds.Height -= bWidth; int cx = base.PaintData(g, dataBounds, firstVisibleColumn, columnCount, alignToRight); if (bWidth > 0) PaintBottomBorder(g, bounds, cx, bWidth, alignToRight); return cx; } protected override void PaintCellContents(Graphics g, Rectangle cellBounds, DataGridColumnStyle column, Brush backBr, Brush foreBrush, bool alignToRight) { if (DataBound) { CurrencyManager listManager = DataGrid.ListManager; column.Paint(g, cellBounds, listManager, this.RowNumber, alignToRight); } else { base.PaintCellContents(g, cellBounds, column, backBr, foreBrush, alignToRight); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlLanguageConverter.cs
- ClientClassGenerator.cs
- UInt64.cs
- ExpressionVisitor.cs
- IOThreadScheduler.cs
- StringTraceRecord.cs
- OutputCacheModule.cs
- FontWeights.cs
- MbpInfo.cs
- Clock.cs
- HitTestDrawingContextWalker.cs
- RtfNavigator.cs
- ObjectStateManagerMetadata.cs
- DirectoryObjectSecurity.cs
- HttpProfileBase.cs
- DataConnectionHelper.cs
- ParenthesizePropertyNameAttribute.cs
- ReflectionHelper.cs
- KeyNotFoundException.cs
- DataObjectEventArgs.cs
- OrCondition.cs
- PrivilegeNotHeldException.cs
- ListBindingConverter.cs
- SqlEnums.cs
- OrderedDictionaryStateHelper.cs
- NetPipeSection.cs
- DataColumnPropertyDescriptor.cs
- ParameterReplacerVisitor.cs
- WindowsProgressbar.cs
- LeaseManager.cs
- SafeNativeMethods.cs
- XmlEntityReference.cs
- MissingSatelliteAssemblyException.cs
- DiagnosticsConfiguration.cs
- MappingSource.cs
- DBConcurrencyException.cs
- SafeHandles.cs
- KeyedCollection.cs
- PenCursorManager.cs
- UInt64Converter.cs
- RegexStringValidator.cs
- ToolConsole.cs
- DbConnectionInternal.cs
- MasterPageBuildProvider.cs
- SafeFindHandle.cs
- VirtualPath.cs
- TrackingStringDictionary.cs
- LineProperties.cs
- IssuedTokenClientCredential.cs
- AttributeProviderAttribute.cs
- SelectedDatesCollection.cs
- Style.cs
- DataGridItemCollection.cs
- OracleConnection.cs
- Int32AnimationBase.cs
- ArgumentNullException.cs
- InstanceKeyCollisionException.cs
- CuspData.cs
- AspNetCompatibilityRequirementsMode.cs
- DerivedKeySecurityToken.cs
- StreamInfo.cs
- AssociationTypeEmitter.cs
- TransformerInfo.cs
- XmlSchemaAll.cs
- SessionParameter.cs
- TextCollapsingProperties.cs
- HttpListenerPrefixCollection.cs
- ActionMessageFilterTable.cs
- userdatakeys.cs
- DataErrorValidationRule.cs
- SubMenuStyleCollection.cs
- MonthChangedEventArgs.cs
- ProvidersHelper.cs
- EventQueueState.cs
- CodeConditionStatement.cs
- ImageMap.cs
- WithParamAction.cs
- RadialGradientBrush.cs
- WorkflowViewManager.cs
- WorkItem.cs
- _CookieModule.cs
- DataGridColumn.cs
- AnnotationService.cs
- ListDictionary.cs
- SqlFacetAttribute.cs
- RC2CryptoServiceProvider.cs
- QuadraticBezierSegment.cs
- EntityDataSourceValidationException.cs
- CharKeyFrameCollection.cs
- ZipIOExtraFieldPaddingElement.cs
- safesecurityhelperavalon.cs
- ContentDisposition.cs
- SelectionHighlightInfo.cs
- BlobPersonalizationState.cs
- ProxyWebPartManager.cs
- DescendantBaseQuery.cs
- Lasso.cs
- XmlNullResolver.cs
- BlobPersonalizationState.cs
- DataGridHeaderBorder.cs