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
- Unit.cs
- BindingCompleteEventArgs.cs
- SqlNode.cs
- InkPresenter.cs
- WebPartDesigner.cs
- EasingKeyFrames.cs
- XNodeValidator.cs
- odbcmetadatacolumnnames.cs
- BindingSource.cs
- ProjectionQueryOptionExpression.cs
- Exceptions.cs
- DataGridGeneralPage.cs
- SimplePropertyEntry.cs
- AdPostCacheSubstitution.cs
- GraphicsPathIterator.cs
- SessionPageStatePersister.cs
- ExpressionEditorAttribute.cs
- COMException.cs
- ResourceProperty.cs
- ProtectedConfiguration.cs
- OpacityConverter.cs
- SizeAnimationClockResource.cs
- BasicHttpSecurityMode.cs
- SmtpFailedRecipientException.cs
- DispatchWrapper.cs
- SectionRecord.cs
- RenderOptions.cs
- AutomationPeer.cs
- ServiceChannel.cs
- RecognizedAudio.cs
- ExpressionsCollectionEditor.cs
- _SslStream.cs
- DatasetMethodGenerator.cs
- ArgIterator.cs
- ErrorRuntimeConfig.cs
- InternalControlCollection.cs
- NamespaceQuery.cs
- XmlElementElementCollection.cs
- ExpressionWriter.cs
- DataGridViewCellCancelEventArgs.cs
- OverflowException.cs
- TableDesigner.cs
- DataGridViewCellStyle.cs
- MD5HashHelper.cs
- DataListCommandEventArgs.cs
- XmlDataProvider.cs
- TypeConverterAttribute.cs
- EntityContainerEmitter.cs
- SQLBytes.cs
- BooleanFunctions.cs
- DisposableCollectionWrapper.cs
- WsatConfiguration.cs
- Dynamic.cs
- Int32RectConverter.cs
- PrinterUnitConvert.cs
- WebPartCatalogAddVerb.cs
- WindowsFormsEditorServiceHelper.cs
- DependencyPropertyConverter.cs
- DependsOnAttribute.cs
- CodeActivityContext.cs
- DataBoundControlHelper.cs
- LinearGradientBrush.cs
- CodeExpressionStatement.cs
- ListViewItemSelectionChangedEvent.cs
- KernelTypeValidation.cs
- DelayedRegex.cs
- SamlEvidence.cs
- CodeFieldReferenceExpression.cs
- BaseTemplateBuildProvider.cs
- NameValueConfigurationElement.cs
- ToolStripPanelCell.cs
- TreeNodeBinding.cs
- WorkflowInstanceQuery.cs
- AvTrace.cs
- KeyInstance.cs
- PageSetupDialog.cs
- FrameworkRichTextComposition.cs
- SqlDelegatedTransaction.cs
- EngineSite.cs
- Soap12ProtocolImporter.cs
- GlyphsSerializer.cs
- Binding.cs
- WorkItem.cs
- RefType.cs
- StateInitialization.cs
- BaseTemplateBuildProvider.cs
- Util.cs
- XmlSchemaAttributeGroup.cs
- IndexOutOfRangeException.cs
- SamlConstants.cs
- CodeRegionDirective.cs
- Rotation3D.cs
- ReachFixedPageSerializerAsync.cs
- Form.cs
- VScrollBar.cs
- TdsParserSessionPool.cs
- Classification.cs
- CatalogPart.cs
- XmlQueryCardinality.cs
- FolderBrowserDialog.cs