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
- EpmContentDeSerializer.cs
- DirectoryObjectSecurity.cs
- ResolvedKeyFrameEntry.cs
- TreeWalker.cs
- ThreadPool.cs
- IFlowDocumentViewer.cs
- DefaultConfirmation.cs
- DecimalAverageAggregationOperator.cs
- OleDbConnection.cs
- DbConnectionStringCommon.cs
- SqlHelper.cs
- UIElementHelper.cs
- CssTextWriter.cs
- GlobalEventManager.cs
- QualifierSet.cs
- ByteKeyFrameCollection.cs
- OutputCacheSection.cs
- GridItemProviderWrapper.cs
- InvokeProviderWrapper.cs
- RequestCacheManager.cs
- TagMapCollection.cs
- ClientScriptItemCollection.cs
- ImmutablePropertyDescriptorGridEntry.cs
- ActivityExecutorSurrogate.cs
- AmbiguousMatchException.cs
- XmlIlVisitor.cs
- RegexFCD.cs
- TransactionManager.cs
- GraphicsState.cs
- AbandonedMutexException.cs
- SplineQuaternionKeyFrame.cs
- ExecutionEngineException.cs
- SystemBrushes.cs
- TransformedBitmap.cs
- Queue.cs
- CodeDelegateCreateExpression.cs
- MissingMethodException.cs
- AmbientLight.cs
- DiscoveryClientOutputChannel.cs
- DependencyStoreSurrogate.cs
- DataBinder.cs
- PrintPreviewControl.cs
- MouseEventArgs.cs
- Bezier.cs
- CodePrimitiveExpression.cs
- QueueProcessor.cs
- ConfigUtil.cs
- MenuItemBinding.cs
- ArglessEventHandlerProxy.cs
- NamespaceImport.cs
- NullableDecimalMinMaxAggregationOperator.cs
- ExpressionDumper.cs
- ControlOperationInvoker.cs
- SerializationSectionGroup.cs
- DelegateSerializationHolder.cs
- GridViewCancelEditEventArgs.cs
- SectionXmlInfo.cs
- COM2PictureConverter.cs
- PointF.cs
- StyleHelper.cs
- ClientScriptManagerWrapper.cs
- QEncodedStream.cs
- ScrollChrome.cs
- TextPointer.cs
- DefaultDialogButtons.cs
- HtmlSelect.cs
- SortedDictionary.cs
- SQLSingleStorage.cs
- HttpSysSettings.cs
- PageThemeCodeDomTreeGenerator.cs
- StringUtil.cs
- XmlSchemaSimpleTypeUnion.cs
- XmlSchemaValidationException.cs
- DesignerObject.cs
- SqlInternalConnection.cs
- SafeRightsManagementHandle.cs
- PermissionSetEnumerator.cs
- CaseInsensitiveHashCodeProvider.cs
- BitmapInitialize.cs
- ScrollBar.cs
- ConfigurationValidatorAttribute.cs
- DataGridViewAutoSizeModeEventArgs.cs
- LogManagementAsyncResult.cs
- PropertyTabChangedEvent.cs
- ExtendedPropertyDescriptor.cs
- SqlHelper.cs
- ComponentEditorPage.cs
- Opcode.cs
- XmlWrappingWriter.cs
- SubpageParaClient.cs
- XmlComplianceUtil.cs
- OleDbException.cs
- connectionpool.cs
- PageThemeParser.cs
- WinCategoryAttribute.cs
- Psha1DerivedKeyGenerator.cs
- Wildcard.cs
- EventLogEntry.cs
- GlyphRun.cs
- formatter.cs