Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridViewLinkCell.cs
- _UriSyntax.cs
- ArrayHelper.cs
- LambdaCompiler.Binary.cs
- ReadOnlyDataSource.cs
- InstallerTypeAttribute.cs
- Error.cs
- CorrelationManager.cs
- CuspData.cs
- AssertSection.cs
- CallInfo.cs
- TypeDescriptionProvider.cs
- ExceptionTrace.cs
- ToolStripItemClickedEventArgs.cs
- SqlTypeConverter.cs
- ReferenceSchema.cs
- FileCodeGroup.cs
- TemplateControlBuildProvider.cs
- NavigationEventArgs.cs
- Rotation3DAnimationUsingKeyFrames.cs
- QilInvoke.cs
- NopReturnReader.cs
- AnnotationService.cs
- WindowsEditBox.cs
- ReflectionUtil.cs
- KeyboardDevice.cs
- XmlSchema.cs
- DataGridViewBindingCompleteEventArgs.cs
- HelpInfo.cs
- FormsAuthenticationCredentials.cs
- BuildProvider.cs
- ProjectionPathBuilder.cs
- LambdaCompiler.Expressions.cs
- HiddenFieldPageStatePersister.cs
- GridToolTip.cs
- Vector3DKeyFrameCollection.cs
- ConnectionManager.cs
- IPAddress.cs
- GridErrorDlg.cs
- XmlSchemaObjectCollection.cs
- InfoCardAsymmetricCrypto.cs
- DeploymentSectionCache.cs
- FieldMetadata.cs
- GridItemCollection.cs
- MediaElementAutomationPeer.cs
- LinqDataSourceUpdateEventArgs.cs
- Models.cs
- MouseActionValueSerializer.cs
- SchemaImporterExtensionElement.cs
- LoginName.cs
- Debug.cs
- ListViewGroupItemCollection.cs
- RegexReplacement.cs
- MulticastNotSupportedException.cs
- HtmlWindow.cs
- wgx_sdk_version.cs
- RTLAwareMessageBox.cs
- IndexedGlyphRun.cs
- SecurityContext.cs
- VisualStyleElement.cs
- HandleExceptionArgs.cs
- _ChunkParse.cs
- DomNameTable.cs
- XmlExtensionFunction.cs
- TableItemPattern.cs
- PerformanceCounter.cs
- QilScopedVisitor.cs
- UIHelper.cs
- DbMetaDataCollectionNames.cs
- PriorityChain.cs
- HGlobalSafeHandle.cs
- EventSinkHelperWriter.cs
- CustomBindingElement.cs
- Viewport2DVisual3D.cs
- HandledEventArgs.cs
- DesignerCommandSet.cs
- TlsnegoTokenProvider.cs
- DesignerContextDescriptor.cs
- IDQuery.cs
- SessionStateModule.cs
- MsmqHostedTransportConfiguration.cs
- Typeface.cs
- ForeignKeyConstraint.cs
- TextServicesCompartmentContext.cs
- XmlElementCollection.cs
- DesignerContextDescriptor.cs
- Root.cs
- WebErrorHandler.cs
- ApplicationSettingsBase.cs
- TextAutomationPeer.cs
- AssemblyHash.cs
- MethodImplAttribute.cs
- XmlUtil.cs
- EditorZone.cs
- NamedElement.cs
- RadioButtonPopupAdapter.cs
- Stroke2.cs
- securitymgrsite.cs
- FrameworkTemplate.cs
- Graphics.cs