Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WindowsListViewGroup.cs
- ExpressionBuilderContext.cs
- SourceElementsCollection.cs
- BookmarkUndoUnit.cs
- SmtpFailedRecipientsException.cs
- DelegatingTypeDescriptionProvider.cs
- Typeface.cs
- SizeConverter.cs
- AttributeCallbackBuilder.cs
- RotateTransform.cs
- StreamInfo.cs
- HttpCapabilitiesEvaluator.cs
- TableDesigner.cs
- EventToken.cs
- RSAPKCS1SignatureFormatter.cs
- ControlAdapter.cs
- OdbcConnectionPoolProviderInfo.cs
- ModifyActivitiesPropertyDescriptor.cs
- XmlSchemaAttributeGroupRef.cs
- ValuePatternIdentifiers.cs
- ChangeNode.cs
- ACE.cs
- PointAnimationBase.cs
- GeometryValueSerializer.cs
- MethodBuilder.cs
- LocatorBase.cs
- DeviceContexts.cs
- ManifestResourceInfo.cs
- GlyphElement.cs
- TextDecorations.cs
- ScrollViewer.cs
- UnauthorizedAccessException.cs
- ComboBoxItem.cs
- BatchParser.cs
- CaseExpr.cs
- Timer.cs
- externdll.cs
- ForwardPositionQuery.cs
- OuterGlowBitmapEffect.cs
- RuntimeArgumentHandle.cs
- TypeReference.cs
- IncrementalReadDecoders.cs
- TypeForwardedFromAttribute.cs
- SequentialOutput.cs
- BuildManager.cs
- HelloMessageApril2005.cs
- TextEndOfSegment.cs
- TabOrder.cs
- LayoutEngine.cs
- DataObjectCopyingEventArgs.cs
- Axis.cs
- HttpConfigurationSystem.cs
- MetadataArtifactLoader.cs
- MarkupObject.cs
- bindurihelper.cs
- FontConverter.cs
- VirtualStackFrame.cs
- InputLanguageProfileNotifySink.cs
- Wildcard.cs
- NumberFunctions.cs
- NetworkCredential.cs
- HttpProtocolReflector.cs
- OleAutBinder.cs
- AccessText.cs
- _ConnectStream.cs
- SequenceDesigner.xaml.cs
- ScrollBar.cs
- OverrideMode.cs
- DateTimeParse.cs
- wgx_render.cs
- ZoneIdentityPermission.cs
- XmlCharacterData.cs
- StringToken.cs
- HttpRuntimeSection.cs
- BindingContext.cs
- HttpException.cs
- FilteredDataSetHelper.cs
- Receive.cs
- ApplicationProxyInternal.cs
- BitmapEncoder.cs
- TextRangeEdit.cs
- StylusCaptureWithinProperty.cs
- CompiledIdentityConstraint.cs
- HttpCapabilitiesBase.cs
- Win32Native.cs
- EtwTrace.cs
- SubpageParagraph.cs
- IPAddress.cs
- InProcStateClientManager.cs
- ActivityCodeGenerator.cs
- Model3D.cs
- DataListDesigner.cs
- TypeDescriptorFilterService.cs
- MergeFilterQuery.cs
- DataServiceContext.cs
- StringConcat.cs
- TextElementAutomationPeer.cs
- XmlDataSourceNodeDescriptor.cs
- diagnosticsswitches.cs
- Control.cs