Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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. // //----------------------------------------------------------------------------- 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
- ControlPropertyNameConverter.cs
- _BufferOffsetSize.cs
- ProcessRequestArgs.cs
- BoundColumn.cs
- FormParameter.cs
- Mappings.cs
- XamlFilter.cs
- XmlComplianceUtil.cs
- WebPartConnectionCollection.cs
- WorkflowApplicationEventArgs.cs
- CodeRegionDirective.cs
- FormViewModeEventArgs.cs
- BinaryObjectInfo.cs
- IndexExpression.cs
- Cursor.cs
- MappingMetadataHelper.cs
- SiteMapDesignerDataSourceView.cs
- OutputCacheModule.cs
- StylusButtonEventArgs.cs
- MethodRental.cs
- SystemKeyConverter.cs
- ParserOptions.cs
- BlurEffect.cs
- XmlSchemaSubstitutionGroup.cs
- DataControlCommands.cs
- BatchStream.cs
- TimeSpan.cs
- RuleRefElement.cs
- SourceFileBuildProvider.cs
- ImageCodecInfo.cs
- ExtensionSurface.cs
- EpmSourceTree.cs
- PropertyInformationCollection.cs
- StorageEntityTypeMapping.cs
- FormsAuthenticationUser.cs
- TabletDeviceInfo.cs
- TextWriter.cs
- BitArray.cs
- OuterGlowBitmapEffect.cs
- RegexNode.cs
- MenuCommandService.cs
- EditorBrowsableAttribute.cs
- XmlSerializerFactory.cs
- BaseTemplateCodeDomTreeGenerator.cs
- autovalidator.cs
- AsymmetricSignatureFormatter.cs
- LocalizationParserHooks.cs
- OutOfMemoryException.cs
- GetLedgerEntryForRecipientRequest.cs
- cache.cs
- ColorConverter.cs
- DockPattern.cs
- ProcessThreadDesigner.cs
- ZipIOExtraFieldZip64Element.cs
- DispatcherProcessingDisabled.cs
- DtdParser.cs
- StringValidatorAttribute.cs
- PointCollectionConverter.cs
- BufferBuilder.cs
- ImportCatalogPart.cs
- SevenBitStream.cs
- TextOnlyOutput.cs
- TemplateContentLoader.cs
- RegexRunner.cs
- BitmapCache.cs
- Size3DConverter.cs
- SystemIPv4InterfaceProperties.cs
- RuntimeWrappedException.cs
- WebPartConnectionsConnectVerb.cs
- DispatcherExceptionEventArgs.cs
- ToolStripDesignerUtils.cs
- contentDescriptor.cs
- ListViewDeletedEventArgs.cs
- DesignerSelectionListAdapter.cs
- PageCodeDomTreeGenerator.cs
- AnnotationAdorner.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- CornerRadius.cs
- Atom10FeedFormatter.cs
- CompModSwitches.cs
- ProcessHostFactoryHelper.cs
- SetUserPreferenceRequest.cs
- TypeContext.cs
- SqlOuterApplyReducer.cs
- UserMapPath.cs
- Keyboard.cs
- SelectedDatesCollection.cs
- ReaderWriterLockWrapper.cs
- WmlCommandAdapter.cs
- NamedPipeTransportManager.cs
- SchemaMerger.cs
- ErrorWrapper.cs
- ImportedNamespaceContextItem.cs
- PointAnimationUsingPath.cs
- QueueProcessor.cs
- InstanceDataCollectionCollection.cs
- coordinatorscratchpad.cs
- DataGridViewLayoutData.cs
- AppDomainManager.cs
- XmlNodeReader.cs