Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SmiRecordBuffer.cs
- DSASignatureFormatter.cs
- WindowsPrincipal.cs
- Rfc4050KeyFormatter.cs
- SqlException.cs
- EntityDataSourceWrapperCollection.cs
- PerformanceCounterPermission.cs
- LingerOption.cs
- TextSchema.cs
- WebBrowserDocumentCompletedEventHandler.cs
- Set.cs
- Missing.cs
- SRef.cs
- DynamicObject.cs
- EventSinkHelperWriter.cs
- ImageBrush.cs
- FontDifferentiator.cs
- IntegerValidatorAttribute.cs
- WindowsFormsHelpers.cs
- _FtpControlStream.cs
- WebServiceBindingAttribute.cs
- IfAction.cs
- TitleStyle.cs
- ObjectSpanRewriter.cs
- ISFTagAndGuidCache.cs
- StringUtil.cs
- XmlQualifiedNameTest.cs
- ImmutableCollection.cs
- WebPartUtil.cs
- Sentence.cs
- TextSchema.cs
- ExpressionBindingCollection.cs
- WorkflowMessageEventHandler.cs
- CharacterHit.cs
- Image.cs
- smtppermission.cs
- ADConnectionHelper.cs
- SplineQuaternionKeyFrame.cs
- HierarchicalDataBoundControl.cs
- RecognizedPhrase.cs
- QilLiteral.cs
- ManagementObject.cs
- PointCollection.cs
- BindingContext.cs
- ConfigurationStrings.cs
- Encoder.cs
- ReadOnlyDataSource.cs
- PassportAuthenticationEventArgs.cs
- ActivityTypeResolver.xaml.cs
- DbSourceCommand.cs
- CheckBox.cs
- DirectoryLocalQuery.cs
- ChtmlCommandAdapter.cs
- BitmapEffectInput.cs
- PermissionSet.cs
- UpDownBaseDesigner.cs
- BindableTemplateBuilder.cs
- SynthesizerStateChangedEventArgs.cs
- PageBreakRecord.cs
- ChangePassword.cs
- EventLogTraceListener.cs
- LingerOption.cs
- _SslSessionsCache.cs
- FixedNode.cs
- TypedTableHandler.cs
- EventSourceCreationData.cs
- DataGridItemEventArgs.cs
- CreateDataSourceDialog.cs
- EntityKeyElement.cs
- StorageInfo.cs
- TypeDependencyAttribute.cs
- ClrPerspective.cs
- SystemNetworkInterface.cs
- PassportIdentity.cs
- HandlerBase.cs
- HttpResponseHeader.cs
- WebEventCodes.cs
- BackStopAuthenticationModule.cs
- TextRange.cs
- Int32RectConverter.cs
- InstanceNotReadyException.cs
- XmlWrappingWriter.cs
- PerformanceCounterPermissionAttribute.cs
- ErrorView.xaml.cs
- Guid.cs
- RegexTree.cs
- ToolStripLocationCancelEventArgs.cs
- SrgsSubset.cs
- FixedBufferAttribute.cs
- DataSourceCacheDurationConverter.cs
- FormatSettings.cs
- CodeSnippetCompileUnit.cs
- PointAnimationUsingPath.cs
- ContextConfiguration.cs
- InvalidWMPVersionException.cs
- SizeKeyFrameCollection.cs
- Point4DConverter.cs
- OutputCacheSettingsSection.cs
- ZipIORawDataFileBlock.cs
- PolyLineSegment.cs