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
- PathFigureCollection.cs
- ServiceNameCollection.cs
- ZoneMembershipCondition.cs
- MimeMultiPart.cs
- WorkflowMarkupSerializer.cs
- UIServiceHelper.cs
- HtmlSelect.cs
- PermissionRequestEvidence.cs
- SmiGettersStream.cs
- UseLicense.cs
- ByteAnimation.cs
- TemplateLookupAction.cs
- SourceChangedEventArgs.cs
- PlainXmlSerializer.cs
- DetailsViewRowCollection.cs
- WaitHandle.cs
- TraceHandlerErrorFormatter.cs
- InfoCardCryptoHelper.cs
- OdbcFactory.cs
- ConfigXmlComment.cs
- MailBnfHelper.cs
- DefaultTextStoreTextComposition.cs
- TextTabProperties.cs
- CachedFontFace.cs
- RequestResponse.cs
- DataGridViewImageCell.cs
- ListViewDeletedEventArgs.cs
- SizeChangedEventArgs.cs
- HttpCachePolicyWrapper.cs
- VideoDrawing.cs
- HttpServerUtilityWrapper.cs
- JsonQueryStringConverter.cs
- ExpressionConverter.cs
- WinEventQueueItem.cs
- DataTemplate.cs
- ExpressionHelper.cs
- webproxy.cs
- WebPartDisplayModeCancelEventArgs.cs
- DataGridPageChangedEventArgs.cs
- ArcSegment.cs
- ImageField.cs
- SplitterEvent.cs
- DispatcherHookEventArgs.cs
- COM2PropertyDescriptor.cs
- SmtpNetworkElement.cs
- StickyNoteContentControl.cs
- COAUTHIDENTITY.cs
- HelpExampleGenerator.cs
- WaitForChangedResult.cs
- SmiTypedGetterSetter.cs
- WebPartsSection.cs
- SafeNativeMethods.cs
- TemplateKey.cs
- SchemaElementDecl.cs
- MimeTextImporter.cs
- SqlFactory.cs
- AssemblyNameProxy.cs
- TreeNodeBindingDepthConverter.cs
- ShaderEffect.cs
- NativeMethods.cs
- ValueSerializerAttribute.cs
- DefinitionBase.cs
- DataGridBoolColumn.cs
- httpapplicationstate.cs
- XsltConvert.cs
- CodeCommentStatement.cs
- WindowsSlider.cs
- ServiceModelPerformanceCounters.cs
- EmptyStringExpandableObjectConverter.cs
- COMException.cs
- ConfigXmlElement.cs
- EventLogEntry.cs
- AttributedMetaModel.cs
- UserControlDocumentDesigner.cs
- RuntimeArgumentHandle.cs
- MultipleViewProviderWrapper.cs
- DataGridViewElement.cs
- TableItemPattern.cs
- XPathDocument.cs
- CompareValidator.cs
- TypeLoadException.cs
- precedingsibling.cs
- NameService.cs
- BinaryCommonClasses.cs
- HMACRIPEMD160.cs
- IDispatchConstantAttribute.cs
- LayoutEditorPart.cs
- BasicExpressionVisitor.cs
- ParseHttpDate.cs
- BindUriHelper.cs
- EntityClassGenerator.cs
- ChangeNode.cs
- OrderedDictionaryStateHelper.cs
- BooleanAnimationUsingKeyFrames.cs
- AutomationEventArgs.cs
- HMACSHA1.cs
- MapPathBasedVirtualPathProvider.cs
- SerialStream.cs
- Attachment.cs
- PrivacyNoticeBindingElementImporter.cs