Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- WindowsFormsLinkLabel.cs
- KeyedCollection.cs
- MsmqInputSessionChannelListener.cs
- CacheAxisQuery.cs
- MimeFormatter.cs
- CursorConverter.cs
- GrammarBuilderWildcard.cs
- TabPage.cs
- ContractMapping.cs
- DataGridRelationshipRow.cs
- MasterPageParser.cs
- HttpSocketManager.cs
- ResolveNameEventArgs.cs
- VisualProxy.cs
- RowVisual.cs
- TypeSystemProvider.cs
- WebPartConnectionCollection.cs
- WebServiceData.cs
- SigningCredentials.cs
- DrawingServices.cs
- DesignerCommandAdapter.cs
- FilteredDataSetHelper.cs
- CultureSpecificCharacterBufferRange.cs
- BuildProvider.cs
- TypedTableBase.cs
- TrackingProfileSerializer.cs
- GetIndexBinder.cs
- ApplicationManager.cs
- CompressionTransform.cs
- Camera.cs
- SynchronizedDisposablePool.cs
- OuterGlowBitmapEffect.cs
- WindowsSpinner.cs
- ExtensionFile.cs
- DbConnectionPoolGroup.cs
- MultipartContentParser.cs
- TrustLevelCollection.cs
- SQLMembershipProvider.cs
- DataGridViewImageColumn.cs
- XmlSchemaAttributeGroupRef.cs
- BindingValueChangedEventArgs.cs
- AppDomainUnloadedException.cs
- DataBindingList.cs
- ObjectParameterCollection.cs
- ConstNode.cs
- MonikerHelper.cs
- XmlText.cs
- BaseParser.cs
- GridViewUpdateEventArgs.cs
- UnsafeNativeMethods.cs
- XmlSchemaDatatype.cs
- XhtmlBasicValidatorAdapter.cs
- LeaseManager.cs
- UseAttributeSetsAction.cs
- CopyCodeAction.cs
- Pointer.cs
- IImplicitResourceProvider.cs
- DesignerSerializationVisibilityAttribute.cs
- SparseMemoryStream.cs
- TypedReference.cs
- ObjectConverter.cs
- ApplicationInterop.cs
- VisualTarget.cs
- DrawingCollection.cs
- BinaryFormatter.cs
- IntSumAggregationOperator.cs
- FunctionImportMapping.cs
- XPathParser.cs
- ParserExtension.cs
- Base64Encoder.cs
- ExtentCqlBlock.cs
- ValidationErrorCollection.cs
- XmlWrappingReader.cs
- BitmapSizeOptions.cs
- HtmlInputControl.cs
- ImplicitInputBrush.cs
- OdbcEnvironment.cs
- HttpModuleActionCollection.cs
- BulletedList.cs
- GridViewUpdateEventArgs.cs
- TriggerActionCollection.cs
- BaseDataBoundControl.cs
- Model3DGroup.cs
- AssemblySettingAttributes.cs
- MenuItemStyleCollection.cs
- ListItem.cs
- SqlDataSourceTableQuery.cs
- CodeTypeDeclaration.cs
- UTF32Encoding.cs
- HttpRuntimeSection.cs
- ItemsControlAutomationPeer.cs
- StoreUtilities.cs
- IdleTimeoutMonitor.cs
- XPathException.cs
- NameValueFileSectionHandler.cs
- CodeIdentifiers.cs
- SqlUtil.cs
- KernelTypeValidation.cs
- SmiContext.cs
- BatchServiceHost.cs