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
- NonVisualControlAttribute.cs
- ProxySimple.cs
- ParallelEnumerable.cs
- KnownBoxes.cs
- SoapClientProtocol.cs
- DesignerActionUIService.cs
- formatter.cs
- ZipIOLocalFileDataDescriptor.cs
- LayoutManager.cs
- xdrvalidator.cs
- SplitterCancelEvent.cs
- PropertyStore.cs
- ResourceProperty.cs
- XmlSchemaIdentityConstraint.cs
- URI.cs
- Debugger.cs
- SmtpClient.cs
- Rotation3DAnimationUsingKeyFrames.cs
- XpsImage.cs
- Activator.cs
- TargetParameterCountException.cs
- LinqDataView.cs
- FontStretch.cs
- DurableEnlistmentState.cs
- Context.cs
- DbCommandTree.cs
- HtmlLabelAdapter.cs
- MessageQueue.cs
- ILGenerator.cs
- TypeSystem.cs
- SplitterCancelEvent.cs
- GZipStream.cs
- CompilerGlobalScopeAttribute.cs
- UnsafeNativeMethodsTablet.cs
- COAUTHIDENTITY.cs
- ResourcesChangeInfo.cs
- SQLInt64.cs
- CodeVariableDeclarationStatement.cs
- PropertyEmitter.cs
- SiteMap.cs
- HtmlHead.cs
- Application.cs
- XhtmlTextWriter.cs
- PersonalizationState.cs
- LicenseContext.cs
- AppDomainAttributes.cs
- SetMemberBinder.cs
- TransformerInfo.cs
- TableLayoutCellPaintEventArgs.cs
- DataGridViewCellValueEventArgs.cs
- FixedFlowMap.cs
- IPAddress.cs
- BindingCompleteEventArgs.cs
- IdentityNotMappedException.cs
- CompoundFileStreamReference.cs
- QilValidationVisitor.cs
- DocumentGrid.cs
- IdnElement.cs
- comcontractssection.cs
- StatusBarItemAutomationPeer.cs
- ProgressBar.cs
- QilValidationVisitor.cs
- OleDbRowUpdatingEvent.cs
- CLSCompliantAttribute.cs
- UnaryExpressionHelper.cs
- MediaSystem.cs
- StringReader.cs
- FileSystemEventArgs.cs
- ListItemCollection.cs
- XmlKeywords.cs
- MetadataPropertyCollection.cs
- ZipQueryOperator.cs
- VScrollBar.cs
- ScaleTransform3D.cs
- GPPOINTF.cs
- DesignerWidgets.cs
- FontFamilyValueSerializer.cs
- DeclarationUpdate.cs
- TouchDevice.cs
- AccessDataSourceDesigner.cs
- TableRow.cs
- Underline.cs
- XPathNodeList.cs
- SettingsAttributeDictionary.cs
- WebPartCollection.cs
- XmlElementAttribute.cs
- documentsequencetextpointer.cs
- BitmapDecoder.cs
- SafeRightsManagementPubHandle.cs
- LinkConverter.cs
- Size.cs
- DataSourceControlBuilder.cs
- DockPattern.cs
- ClientSettingsSection.cs
- WebPartChrome.cs
- PrimitiveDataContract.cs
- DbReferenceCollection.cs
- PathHelper.cs
- DataSourceControl.cs
- SeverityFilter.cs