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
- RuleAttributes.cs
- ChangeBlockUndoRecord.cs
- UniqueEventHelper.cs
- ContextMenuStripActionList.cs
- PolicyImporterElementCollection.cs
- DocumentOrderQuery.cs
- WorkflowQueueInfo.cs
- CannotUnloadAppDomainException.cs
- MarginCollapsingState.cs
- WebBrowsableAttribute.cs
- DataGridViewRowCollection.cs
- RemotingConfigParser.cs
- UInt32Converter.cs
- CqlIdentifiers.cs
- CodeDelegateInvokeExpression.cs
- CollectionChangedEventManager.cs
- SocketException.cs
- ChangePasswordDesigner.cs
- GetCryptoTransformRequest.cs
- DataGridViewAdvancedBorderStyle.cs
- MouseButton.cs
- TrackingDataItem.cs
- Parser.cs
- FlowDocumentPage.cs
- Parameter.cs
- OleDbParameter.cs
- ClientOptions.cs
- NameTable.cs
- PeerNearMe.cs
- DataContractSerializerOperationGenerator.cs
- CodeCommentStatementCollection.cs
- DelayLoadType.cs
- MenuScrollingVisibilityConverter.cs
- TrustManagerMoreInformation.cs
- LinkedResourceCollection.cs
- KnownTypesHelper.cs
- IIS7WorkerRequest.cs
- EncryptedPackageFilter.cs
- WorkflowDispatchContext.cs
- XmlSchemaObjectCollection.cs
- Int32AnimationBase.cs
- ObfuscateAssemblyAttribute.cs
- SqlGatherConsumedAliases.cs
- CqlLexer.cs
- nulltextcontainer.cs
- XmlSchemaComplexContentRestriction.cs
- baseshape.cs
- SelectorAutomationPeer.cs
- ImagingCache.cs
- SelectionBorderGlyph.cs
- PaintValueEventArgs.cs
- COM2IDispatchConverter.cs
- EmbeddedMailObjectsCollection.cs
- AttachmentCollection.cs
- OracleEncoding.cs
- Listbox.cs
- ToolStripDropTargetManager.cs
- ActivationServices.cs
- HTMLTagNameToTypeMapper.cs
- DoubleLink.cs
- FormParameter.cs
- ListSortDescriptionCollection.cs
- RequiredFieldValidator.cs
- VectorConverter.cs
- DaylightTime.cs
- ReadWriteObjectLock.cs
- SQLString.cs
- ComplexTypeEmitter.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- RSACryptoServiceProvider.cs
- ComplexPropertyEntry.cs
- LabelEditEvent.cs
- WriteFileContext.cs
- Configuration.cs
- COAUTHIDENTITY.cs
- ScriptComponentDescriptor.cs
- TreeNodeCollection.cs
- KeyedHashAlgorithm.cs
- BmpBitmapDecoder.cs
- AncestorChangedEventArgs.cs
- MembershipValidatePasswordEventArgs.cs
- RSAProtectedConfigurationProvider.cs
- UserControlCodeDomTreeGenerator.cs
- XmlWhitespace.cs
- BindableTemplateBuilder.cs
- AutomationPropertyInfo.cs
- XmlAnyElementAttribute.cs
- InternalPermissions.cs
- ListQueryResults.cs
- TypeUtil.cs
- SqlDataSourceCommandEventArgs.cs
- ClosableStream.cs
- ContourSegment.cs
- EmptyStringExpandableObjectConverter.cs
- NumberAction.cs
- ModelProperty.cs
- WebBrowserHelper.cs
- SQLBinaryStorage.cs
- FirstMatchCodeGroup.cs
- LocatorPart.cs