Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- AlphaSortedEnumConverter.cs
- LayoutTable.cs
- XslNumber.cs
- DecimalStorage.cs
- WebPart.cs
- FacetEnabledSchemaElement.cs
- X509Extension.cs
- MergeLocalizationDirectives.cs
- Resources.Designer.cs
- ReferencedAssembly.cs
- PropertyFilter.cs
- EventManager.cs
- TextTreeInsertElementUndoUnit.cs
- IncrementalHitTester.cs
- ShapingWorkspace.cs
- DataSetUtil.cs
- TypeUsage.cs
- CompensatableTransactionScopeActivity.cs
- RedBlackList.cs
- AmbientValueAttribute.cs
- PeerEndPoint.cs
- TextRenderer.cs
- CountAggregationOperator.cs
- ObjectListTitleAttribute.cs
- PathGeometry.cs
- RegexRunnerFactory.cs
- JsonEnumDataContract.cs
- SerializerProvider.cs
- XmlSerializationGeneratedCode.cs
- WebPartConnectionsDisconnectVerb.cs
- StorageAssociationSetMapping.cs
- TPLETWProvider.cs
- CompoundFileStorageReference.cs
- ObjectDataSourceFilteringEventArgs.cs
- FileDialogCustomPlace.cs
- RegexStringValidator.cs
- ConfigDefinitionUpdates.cs
- ChildChangedEventArgs.cs
- DefaultAssemblyResolver.cs
- DataStreamFromComStream.cs
- figurelengthconverter.cs
- XmlSerializableWriter.cs
- SqlUtils.cs
- WmiEventSink.cs
- DelegatedStream.cs
- ObjectDataSourceDisposingEventArgs.cs
- TypeHelper.cs
- DecimalFormatter.cs
- DataGridViewRowStateChangedEventArgs.cs
- NameValueSectionHandler.cs
- ItemsControl.cs
- HostedHttpRequestAsyncResult.cs
- SchemaMerger.cs
- BaseCodePageEncoding.cs
- FixedSOMTextRun.cs
- TreeNodeCollection.cs
- TraceEventCache.cs
- WebPartTracker.cs
- LockedBorderGlyph.cs
- CalculatedColumn.cs
- HtmlForm.cs
- DataRecordInfo.cs
- TypedAsyncResult.cs
- EventProxy.cs
- StorageAssociationTypeMapping.cs
- GroupedContextMenuStrip.cs
- CommandLibraryHelper.cs
- CommandPlan.cs
- SamlSubject.cs
- InputScopeAttribute.cs
- XmlSchemaException.cs
- TraceListeners.cs
- FocusManager.cs
- HwndStylusInputProvider.cs
- FunctionMappingTranslator.cs
- LeftCellWrapper.cs
- Funcletizer.cs
- CodePrimitiveExpression.cs
- CompoundFileReference.cs
- SmiContextFactory.cs
- ConfigurationValidatorAttribute.cs
- PropertyTabChangedEvent.cs
- DataGridViewEditingControlShowingEventArgs.cs
- DataGridViewCell.cs
- DocumentGridContextMenu.cs
- SmtpNetworkElement.cs
- XmlChildNodes.cs
- InkCanvasSelection.cs
- MemoryMappedViewStream.cs
- TabControlEvent.cs
- ObjectConverter.cs
- ProcessModelInfo.cs
- HttpResponseInternalBase.cs
- DataGridPagerStyle.cs
- XmlIterators.cs
- Context.cs
- XmlCodeExporter.cs
- XsltConvert.cs
- ToolStripProgressBar.cs
- TableLayout.cs