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
- DefaultTraceListener.cs
- TypedAsyncResult.cs
- GeometryHitTestResult.cs
- ManualResetEvent.cs
- LicenseProviderAttribute.cs
- NativeMethods.cs
- _LocalDataStore.cs
- StylusSystemGestureEventArgs.cs
- WebPartManager.cs
- WebPartTransformer.cs
- LoginCancelEventArgs.cs
- FacetEnabledSchemaElement.cs
- HtmlInputReset.cs
- SafeNativeMethods.cs
- SmtpMail.cs
- MetaModel.cs
- TypeValidationEventArgs.cs
- DragDrop.cs
- ByteStreamMessageEncoder.cs
- ThreadStaticAttribute.cs
- EntityClientCacheKey.cs
- TextBoxBase.cs
- PackageDigitalSignatureManager.cs
- FunctionQuery.cs
- SignalGate.cs
- TableAutomationPeer.cs
- ReflectEventDescriptor.cs
- SelectionBorderGlyph.cs
- SqlDataReaderSmi.cs
- Region.cs
- BooleanFunctions.cs
- X509ServiceCertificateAuthentication.cs
- RuntimeComponentFilter.cs
- SqlNamer.cs
- WebPartVerb.cs
- ListDictionary.cs
- RadialGradientBrush.cs
- GatewayIPAddressInformationCollection.cs
- Padding.cs
- TypeReference.cs
- DefaultSettingsSection.cs
- Trace.cs
- hebrewshape.cs
- Double.cs
- ClonableStack.cs
- ResumeStoryboard.cs
- LinkClickEvent.cs
- UnknownBitmapEncoder.cs
- ListViewContainer.cs
- SerialStream.cs
- TableStyle.cs
- Directory.cs
- Logging.cs
- CopyEncoder.cs
- AspProxy.cs
- SqlBuffer.cs
- PropertyValueUIItem.cs
- PaintEvent.cs
- PeerTransportSecuritySettings.cs
- ColumnBinding.cs
- GZipStream.cs
- WinFormsSpinner.cs
- Pkcs9Attribute.cs
- ObsoleteAttribute.cs
- BookmarkScopeHandle.cs
- MaskInputRejectedEventArgs.cs
- OutputCacheProfileCollection.cs
- ScrollEventArgs.cs
- MessageFilterTable.cs
- DataTableNewRowEvent.cs
- XmlSchemaRedefine.cs
- ACL.cs
- Events.cs
- FocusTracker.cs
- TextEditorTyping.cs
- ParameterCollection.cs
- MatrixAnimationUsingPath.cs
- FontClient.cs
- WebMessageFormatHelper.cs
- AppDomainUnloadedException.cs
- CodeCatchClause.cs
- NetworkCredential.cs
- CustomErrorsSectionWrapper.cs
- RightsManagementPermission.cs
- RefreshPropertiesAttribute.cs
- FontSourceCollection.cs
- DocumentOrderQuery.cs
- UriSectionReader.cs
- UInt32Storage.cs
- SystemColorTracker.cs
- Relationship.cs
- ResourceProviderFactory.cs
- OledbConnectionStringbuilder.cs
- BinaryWriter.cs
- XmlNamespaceDeclarationsAttribute.cs
- SimpleBitVector32.cs
- ProfileBuildProvider.cs
- RadioButtonPopupAdapter.cs
- AsymmetricSignatureDeformatter.cs
- OrthographicCamera.cs