Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- PermissionRequestEvidence.cs
- ObjectTag.cs
- CompilerInfo.cs
- SystemIPGlobalStatistics.cs
- ArrayHelper.cs
- SqlRemoveConstantOrderBy.cs
- NativeMethods.cs
- PartialClassGenerationTask.cs
- AccessorTable.cs
- ClockGroup.cs
- Pair.cs
- CodeLabeledStatement.cs
- SHA256Managed.cs
- Clipboard.cs
- DecimalConverter.cs
- XmlDataProvider.cs
- MethodBuilderInstantiation.cs
- Vector3DAnimation.cs
- GiveFeedbackEventArgs.cs
- DataGridViewImageColumn.cs
- MasterPageBuildProvider.cs
- ExpandoClass.cs
- CacheDependency.cs
- MenuAdapter.cs
- JournalNavigationScope.cs
- RoutedCommand.cs
- DefaultMemberAttribute.cs
- TreeViewItemAutomationPeer.cs
- BoundPropertyEntry.cs
- ContourSegment.cs
- ItemCheckEvent.cs
- SettingsContext.cs
- ContextInformation.cs
- OleAutBinder.cs
- EUCJPEncoding.cs
- RankException.cs
- RealProxy.cs
- TableCellCollection.cs
- BoolExpression.cs
- WebPartConnectionCollection.cs
- SafeFindHandle.cs
- BinaryConverter.cs
- IIS7UserPrincipal.cs
- WorkflowWebHostingModule.cs
- FusionWrap.cs
- PeerNameRegistration.cs
- _Events.cs
- RequestBringIntoViewEventArgs.cs
- OrderedEnumerableRowCollection.cs
- EncryptedData.cs
- RTTrackingProfile.cs
- Enumerable.cs
- CultureInfoConverter.cs
- InternalBufferOverflowException.cs
- DBDataPermissionAttribute.cs
- TreeIterators.cs
- SuppressMergeCheckAttribute.cs
- UrlMappingCollection.cs
- SchemaElement.cs
- DBNull.cs
- XmlRootAttribute.cs
- dsa.cs
- InfiniteTimeSpanConverter.cs
- OledbConnectionStringbuilder.cs
- DataGridViewCellConverter.cs
- SQLSingleStorage.cs
- ImageButton.cs
- DescendantQuery.cs
- Int64Converter.cs
- HtmlImage.cs
- DataServiceStreamResponse.cs
- RawStylusInputReport.cs
- GlyphingCache.cs
- EntityTypeBase.cs
- FillRuleValidation.cs
- ContextMenuStripGroup.cs
- XmlExpressionDumper.cs
- WebPartDisplayModeEventArgs.cs
- PixelFormats.cs
- Rect3D.cs
- basecomparevalidator.cs
- CuspData.cs
- InputBinder.cs
- MessageSmuggler.cs
- NetSectionGroup.cs
- MsdtcClusterUtils.cs
- SafeMemoryMappedViewHandle.cs
- MachineKeyConverter.cs
- BufferAllocator.cs
- GradientStopCollection.cs
- WebPartConnectionsCloseVerb.cs
- AmbiguousMatchException.cs
- DbDataAdapter.cs
- ClientScriptManagerWrapper.cs
- InkCanvasSelection.cs
- SqlDataRecord.cs
- ExpressionBuilder.cs
- SMSvcHost.cs
- EnumerableRowCollectionExtensions.cs
- BamlVersionHeader.cs