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
- OrderedDictionary.cs
- ButtonChrome.cs
- PassportAuthenticationEventArgs.cs
- PropertyInformation.cs
- XPathDocument.cs
- Binding.cs
- CharUnicodeInfo.cs
- InputLanguageManager.cs
- OdbcConnectionPoolProviderInfo.cs
- FlatButtonAppearance.cs
- TabRenderer.cs
- HtmlString.cs
- PeerIPHelper.cs
- EllipseGeometry.cs
- ObjectAnimationBase.cs
- ErrorProvider.cs
- IndexerNameAttribute.cs
- SqlCacheDependencySection.cs
- SpoolingTask.cs
- UniqueSet.cs
- HtmlHead.cs
- DataService.cs
- WebPartEditVerb.cs
- SafeViewOfFileHandle.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- rsa.cs
- securitycriticaldataClass.cs
- AsyncOperationLifetimeManager.cs
- Exception.cs
- FormViewInsertedEventArgs.cs
- QilFunction.cs
- OdbcReferenceCollection.cs
- RoutedEventValueSerializer.cs
- OleDbSchemaGuid.cs
- XmlUrlResolver.cs
- CodeRegionDirective.cs
- __Filters.cs
- CLRBindingWorker.cs
- Currency.cs
- DPCustomTypeDescriptor.cs
- SimpleHandlerFactory.cs
- UnicastIPAddressInformationCollection.cs
- Typeface.cs
- wmiprovider.cs
- AppSettingsReader.cs
- DataGridCaption.cs
- WebPartsSection.cs
- RoutingExtension.cs
- PriorityBindingExpression.cs
- ToolstripProfessionalRenderer.cs
- ValueQuery.cs
- SpeechRecognizer.cs
- DetailsViewDeleteEventArgs.cs
- NodeLabelEditEvent.cs
- EncoderNLS.cs
- TableLayoutStyleCollection.cs
- ThreadSafeList.cs
- GraphicsState.cs
- XmlSchemaSimpleContentRestriction.cs
- MediaElementAutomationPeer.cs
- IDReferencePropertyAttribute.cs
- SharedRuntimeState.cs
- BindingNavigator.cs
- DataConnectionHelper.cs
- CombinedHttpChannel.cs
- mediaeventargs.cs
- NotifyInputEventArgs.cs
- DetailsViewDeletedEventArgs.cs
- DropDownButton.cs
- MemberRelationshipService.cs
- VectorAnimationUsingKeyFrames.cs
- OrCondition.cs
- LinqDataSourceView.cs
- HyperLinkColumn.cs
- ContentPresenter.cs
- ForwardPositionQuery.cs
- SHA1.cs
- AttributedMetaModel.cs
- Misc.cs
- ImageAutomationPeer.cs
- ExceptionUtil.cs
- AlgoModule.cs
- MustUnderstandBehavior.cs
- WebPartAuthorizationEventArgs.cs
- TemplateBindingExtensionConverter.cs
- WmlObjectListAdapter.cs
- PrimitiveSchema.cs
- BufferedStream2.cs
- ImageFormat.cs
- PerformanceCountersElement.cs
- ComponentChangedEvent.cs
- DiagnosticTrace.cs
- basemetadatamappingvisitor.cs
- CodeConditionStatement.cs
- ExecutedRoutedEventArgs.cs
- CheckableControlBaseAdapter.cs
- SafeLibraryHandle.cs
- RetriableClipboard.cs
- CommonDialog.cs
- DataObjectEventArgs.cs