Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- Int64AnimationUsingKeyFrames.cs
- ListControlConvertEventArgs.cs
- CodeAttributeDeclaration.cs
- IssuedTokenServiceCredential.cs
- EdmType.cs
- DropShadowBitmapEffect.cs
- WebPartHeaderCloseVerb.cs
- DoubleLinkListEnumerator.cs
- DeclarationUpdate.cs
- ConfigLoader.cs
- NumberSubstitution.cs
- Dictionary.cs
- XmlBindingWorker.cs
- ParallelRangeManager.cs
- MediaSystem.cs
- StyleXamlTreeBuilder.cs
- ClientApiGenerator.cs
- DirectoryObjectSecurity.cs
- WinEventQueueItem.cs
- ManipulationCompletedEventArgs.cs
- ListViewItem.cs
- SqlDataSourceParameterParser.cs
- ComponentResourceManager.cs
- Application.cs
- CustomValidator.cs
- Span.cs
- OptimisticConcurrencyException.cs
- HtmlForm.cs
- SessionKeyExpiredException.cs
- recordstate.cs
- FormViewPagerRow.cs
- CharStorage.cs
- MonthCalendar.cs
- HttpCachePolicyElement.cs
- WsatServiceAddress.cs
- UIElement3D.cs
- HtmlValidatorAdapter.cs
- WizardPanel.cs
- ScrollableControl.cs
- SessionStateItemCollection.cs
- EntityDataSourceValidationException.cs
- NumberSubstitution.cs
- MD5.cs
- TextRange.cs
- RequestCacheManager.cs
- IncrementalHitTester.cs
- DetailsView.cs
- ComplexTypeEmitter.cs
- ToolStripDropDownButton.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- XmlAggregates.cs
- TransactionManager.cs
- ProviderCommandInfoUtils.cs
- CodeStatement.cs
- DataGridCheckBoxColumn.cs
- ValidationSummary.cs
- PrintDialogException.cs
- DocumentViewerHelper.cs
- ConstNode.cs
- Constants.cs
- DbExpressionVisitor.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- ColumnWidthChangedEvent.cs
- ClientScriptManager.cs
- KnownBoxes.cs
- FileVersion.cs
- DataServiceRequestException.cs
- RightsManagementPermission.cs
- DockPattern.cs
- HttpResponseHeader.cs
- TryLoadRunnableWorkflowCommand.cs
- HMACSHA512.cs
- Process.cs
- ArgumentException.cs
- DetailsViewInsertedEventArgs.cs
- Label.cs
- ExpressionTextBox.xaml.cs
- OneOfConst.cs
- XamlToRtfParser.cs
- Control.cs
- CharacterMetricsDictionary.cs
- WebPageTraceListener.cs
- FileSecurity.cs
- Help.cs
- AnnotationResourceChangedEventArgs.cs
- ToolStripContainer.cs
- HttpValueCollection.cs
- diagnosticsswitches.cs
- SmiMetaData.cs
- BlurBitmapEffect.cs
- HttpContext.cs
- CaretElement.cs
- DefaultWorkflowTransactionService.cs
- PageTheme.cs
- ScaleTransform.cs
- StorageMappingItemCollection.cs
- ScrollItemPattern.cs
- WebServiceHandler.cs
- ControlTemplate.cs
- SqlInfoMessageEvent.cs