Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridAddNewRow.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextDecoration.cs
- DragDeltaEventArgs.cs
- Roles.cs
- PageSettings.cs
- PeerTransportCredentialType.cs
- ValidateNames.cs
- SqlDataAdapter.cs
- ObjectListFieldCollection.cs
- BaseDataList.cs
- AssemblyFilter.cs
- peernodestatemanager.cs
- X509SecurityTokenParameters.cs
- EdmScalarPropertyAttribute.cs
- DataTableReader.cs
- ExtentKey.cs
- XmlWriterTraceListener.cs
- EntityCollection.cs
- GenerateTemporaryTargetAssembly.cs
- DSGeneratorProblem.cs
- XmlFormatWriterGenerator.cs
- MessageDecoder.cs
- XmlSchemaRedefine.cs
- FormViewInsertEventArgs.cs
- MetafileEditor.cs
- AutomationPatternInfo.cs
- FlowSwitchLink.cs
- PathTooLongException.cs
- BaseValidator.cs
- FileRecordSequence.cs
- ComponentRenameEvent.cs
- ResourceType.cs
- Visual3DCollection.cs
- StatusBarPanelClickEvent.cs
- DateTimeFormatInfoScanner.cs
- _NTAuthentication.cs
- ImageUrlEditor.cs
- XPathPatternParser.cs
- FormViewInsertEventArgs.cs
- VerifyHashRequest.cs
- DesignerTextWriter.cs
- CatalogPartDesigner.cs
- TextPointer.cs
- Enum.cs
- PresentationAppDomainManager.cs
- CodeObject.cs
- XPathScanner.cs
- LambdaCompiler.Binary.cs
- HandoffBehavior.cs
- ProcessHost.cs
- ProtocolsConfigurationEntry.cs
- FullTextLine.cs
- ButtonStandardAdapter.cs
- XmlSchemaParticle.cs
- PropertyItemInternal.cs
- EventBindingService.cs
- SoundPlayer.cs
- ProxyWebPartManager.cs
- ErrorRuntimeConfig.cs
- TimeIntervalCollection.cs
- BuildManager.cs
- UrlMappingsModule.cs
- FontStyle.cs
- XmlDocumentSerializer.cs
- CompensationDesigner.cs
- EmptyEnumerator.cs
- DrawingContextDrawingContextWalker.cs
- TraceXPathNavigator.cs
- WorkflowItemsPresenter.cs
- AppDomainManager.cs
- CqlBlock.cs
- SortedList.cs
- PeerEndPoint.cs
- TypeSource.cs
- DataGridViewTopRowAccessibleObject.cs
- RegexMatch.cs
- HelpProvider.cs
- PropertySegmentSerializer.cs
- SQLBytesStorage.cs
- SqlInfoMessageEvent.cs
- ClipboardProcessor.cs
- SQLDecimalStorage.cs
- DbConnectionStringCommon.cs
- VectorAnimationBase.cs
- SqlInternalConnection.cs
- ProviderConnectionPoint.cs
- XmlNullResolver.cs
- DuplicateWaitObjectException.cs
- FeatureManager.cs
- FlatButtonAppearance.cs
- ACL.cs
- HttpCachePolicyElement.cs
- ValidatedControlConverter.cs
- SystemIcmpV4Statistics.cs
- NullableBoolConverter.cs
- TrackingCondition.cs
- DelegatingTypeDescriptionProvider.cs
- TextSearch.cs
- SByteStorage.cs
- ScopedKnownTypes.cs
- DiagnosticTrace.cs