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
- LicFileLicenseProvider.cs
- FormsIdentity.cs
- CapacityStreamGeometryContext.cs
- IERequestCache.cs
- Command.cs
- PerformanceCounterCategory.cs
- WorkflowMarkupSerializationManager.cs
- DataGridViewDataConnection.cs
- StructuredTypeInfo.cs
- ListControl.cs
- LookupBindingPropertiesAttribute.cs
- ExceptionUtil.cs
- MarkupCompilePass2.cs
- RangeValidator.cs
- SQLUtility.cs
- WebException.cs
- TypedElement.cs
- MD5CryptoServiceProvider.cs
- _SslState.cs
- SubpageParaClient.cs
- OracleConnectionStringBuilder.cs
- CodeDirectionExpression.cs
- FacetDescriptionElement.cs
- ToolStripItemRenderEventArgs.cs
- PartManifestEntry.cs
- ObjectToIdCache.cs
- EmbeddedObject.cs
- XmlSchemaDatatype.cs
- MessageBuffer.cs
- FileDialog_Vista_Interop.cs
- JsonWriterDelegator.cs
- MonitoringDescriptionAttribute.cs
- HMACSHA384.cs
- RIPEMD160.cs
- XPathDescendantIterator.cs
- ConcurrentBag.cs
- SQLInt64.cs
- DataServiceResponse.cs
- XmlEncoding.cs
- TypeLoadException.cs
- ThreadExceptionEvent.cs
- Expressions.cs
- SqlBuilder.cs
- PrivacyNoticeBindingElement.cs
- PrintPreviewControl.cs
- ServiceEndpointAssociationProvider.cs
- FtpCachePolicyElement.cs
- MouseCaptureWithinProperty.cs
- SystemColorTracker.cs
- ImageButton.cs
- Schema.cs
- CompleteWizardStep.cs
- odbcmetadatacolumnnames.cs
- CompilationLock.cs
- XmlImplementation.cs
- PrintDialogException.cs
- TextProperties.cs
- IPipelineRuntime.cs
- ImageCodecInfo.cs
- WebPartConnectionsCloseVerb.cs
- ModulesEntry.cs
- GatewayDefinition.cs
- DesignerWebPartChrome.cs
- smtpconnection.cs
- SystemIcmpV6Statistics.cs
- Certificate.cs
- AssemblySettingAttributes.cs
- OdbcError.cs
- ImageDrawing.cs
- WebPartDisplayMode.cs
- ContentElementAutomationPeer.cs
- BCryptSafeHandles.cs
- FtpCachePolicyElement.cs
- BroadcastEventHelper.cs
- HttpContextBase.cs
- SortedSetDebugView.cs
- ClientOptions.cs
- SQLRoleProvider.cs
- ArrayExtension.cs
- ObjectSpanRewriter.cs
- Walker.cs
- VisualStyleTypesAndProperties.cs
- Image.cs
- EncodingConverter.cs
- MobileRedirect.cs
- Point3DCollectionValueSerializer.cs
- WebPartEditorCancelVerb.cs
- Metadata.cs
- UnicastIPAddressInformationCollection.cs
- MessageAction.cs
- ReadOnlyCollection.cs
- ApplicationServicesHostFactory.cs
- CompiledRegexRunner.cs
- precedingsibling.cs
- DateTimePicker.cs
- CaseInsensitiveOrdinalStringComparer.cs
- XmlChildNodes.cs
- Process.cs
- TextCompositionEventArgs.cs
- Misc.cs