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
- ReceiveSecurityHeaderEntry.cs
- MD5.cs
- MemberPath.cs
- CharStorage.cs
- SystemInfo.cs
- DataRelation.cs
- CharacterBuffer.cs
- EventSetter.cs
- Geometry3D.cs
- Identity.cs
- StatusBar.cs
- ExtendedProtectionPolicyTypeConverter.cs
- ViewCellSlot.cs
- Style.cs
- PropertyDescriptorCollection.cs
- EncoderParameter.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- StaticExtensionConverter.cs
- ManagedWndProcTracker.cs
- ReferentialConstraint.cs
- PropertyRef.cs
- HandoffBehavior.cs
- WebPartConnectVerb.cs
- ScrollViewer.cs
- ConnectionStringsExpressionEditor.cs
- ChildDocumentBlock.cs
- MatrixConverter.cs
- DesignerHelpers.cs
- SelfIssuedAuthProofToken.cs
- AutoGeneratedFieldProperties.cs
- AggregateNode.cs
- WsatAdminException.cs
- StreamUpdate.cs
- GiveFeedbackEvent.cs
- TypeGenericEnumerableViewSchema.cs
- UriParserTemplates.cs
- CounterCreationDataCollection.cs
- ProfileEventArgs.cs
- ScrollItemProviderWrapper.cs
- StringFunctions.cs
- EntityDataSourceContextCreatingEventArgs.cs
- ReadWriteSpinLock.cs
- ModuleBuilder.cs
- FlowThrottle.cs
- Simplifier.cs
- ResXDataNode.cs
- CommonDialog.cs
- MailAddress.cs
- WebPartsPersonalizationAuthorization.cs
- SelectionProcessor.cs
- SmtpAuthenticationManager.cs
- StylusCaptureWithinProperty.cs
- _TLSstream.cs
- FixedDocumentPaginator.cs
- KeyGestureConverter.cs
- Shape.cs
- EntityDesignPluralizationHandler.cs
- HtmlInputCheckBox.cs
- AutoResizedEvent.cs
- Hex.cs
- SiteMapNodeCollection.cs
- EdmSchemaError.cs
- TreeViewAutomationPeer.cs
- SqlWebEventProvider.cs
- SourceLineInfo.cs
- SemanticResultKey.cs
- SparseMemoryStream.cs
- PathFigure.cs
- CookieProtection.cs
- HttpCookiesSection.cs
- RenameRuleObjectDialog.Designer.cs
- EntityDataSourceEntityTypeFilterItem.cs
- DrawListViewSubItemEventArgs.cs
- xmlfixedPageInfo.cs
- CollectionChangeEventArgs.cs
- SqlProviderUtilities.cs
- TimerEventSubscription.cs
- TrustManagerMoreInformation.cs
- InputProcessorProfiles.cs
- SourceFileBuildProvider.cs
- CurrentChangingEventArgs.cs
- XmlChoiceIdentifierAttribute.cs
- ToolCreatedEventArgs.cs
- ResourcePool.cs
- ObjectDataSourceEventArgs.cs
- LocatorGroup.cs
- LongAverageAggregationOperator.cs
- CompModSwitches.cs
- SystemBrushes.cs
- COAUTHIDENTITY.cs
- HtmlTableCellCollection.cs
- Error.cs
- CodePrimitiveExpression.cs
- ComAdminWrapper.cs
- CodeDirectionExpression.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- DelayedRegex.cs
- TitleStyle.cs
- SamlAttributeStatement.cs
- Parameter.cs