Code:
/ DotNET / DotNET / 8.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
- Options.cs
- DocumentPaginator.cs
- DelegateCompletionCallbackWrapper.cs
- TraceUtility.cs
- precedingquery.cs
- PartialCachingControl.cs
- ProfileSection.cs
- LoginDesigner.cs
- ResourceProviderFactory.cs
- ScriptingWebServicesSectionGroup.cs
- BulletedListDesigner.cs
- FragmentQueryProcessor.cs
- HttpGetProtocolReflector.cs
- Ticks.cs
- DBBindings.cs
- EditingScopeUndoUnit.cs
- CopyAttributesAction.cs
- DynamicRenderer.cs
- ScalarRestriction.cs
- AppDomainInstanceProvider.cs
- SeekableReadStream.cs
- XmlSchemaSequence.cs
- FixedTextBuilder.cs
- XslUrlEditor.cs
- WindowsListView.cs
- AuthorizationRuleCollection.cs
- CorrelationHandle.cs
- Stack.cs
- DataGrid.cs
- PenCursorManager.cs
- ScrollData.cs
- SystemWebCachingSectionGroup.cs
- Automation.cs
- PropertyToken.cs
- StorageConditionPropertyMapping.cs
- EmbeddedObject.cs
- SecurityKeyIdentifier.cs
- DataRowExtensions.cs
- ChtmlMobileTextWriter.cs
- ManifestSignatureInformation.cs
- JoinTreeSlot.cs
- WebUtility.cs
- InternalPermissions.cs
- Rotation3DAnimation.cs
- BitmapMetadata.cs
- SecurityContext.cs
- _SafeNetHandles.cs
- MessageBox.cs
- CalendarDataBindingHandler.cs
- RelationshipType.cs
- QuotaThrottle.cs
- DataGridViewToolTip.cs
- StringComparer.cs
- ControlTemplate.cs
- HealthMonitoringSectionHelper.cs
- Pkcs9Attribute.cs
- StackOverflowException.cs
- WindowsGraphics.cs
- RouteParameter.cs
- DictionaryTraceRecord.cs
- DataGridRow.cs
- CachedCompositeFamily.cs
- pingexception.cs
- GenericUriParser.cs
- GeneralTransform3DTo2DTo3D.cs
- NotifyIcon.cs
- MetadataArtifactLoaderResource.cs
- VectorCollection.cs
- RectAnimationClockResource.cs
- Margins.cs
- GradientStop.cs
- NavigationPropertySingletonExpression.cs
- PlanCompilerUtil.cs
- ServiceHttpModule.cs
- Simplifier.cs
- AppDomainManager.cs
- HitTestParameters3D.cs
- BrowserCapabilitiesCompiler.cs
- ObjRef.cs
- XsdDuration.cs
- SupportingTokenDuplexChannel.cs
- PointAnimationClockResource.cs
- xdrvalidator.cs
- SoundPlayerAction.cs
- ParseHttpDate.cs
- CategoryNameCollection.cs
- ListViewAutomationPeer.cs
- LabelDesigner.cs
- SwitchAttribute.cs
- ListArgumentProvider.cs
- ExpressionBindingCollection.cs
- Pens.cs
- BinaryObjectWriter.cs
- StandardOleMarshalObject.cs
- WCFModelStrings.Designer.cs
- CopyCodeAction.cs
- Content.cs
- AffineTransform3D.cs
- EditingCoordinator.cs
- TextContainerChangeEventArgs.cs