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
- Int32Animation.cs
- PermissionSetEnumerator.cs
- PointCollectionValueSerializer.cs
- WindowsEditBox.cs
- EntitySet.cs
- SafeMemoryMappedFileHandle.cs
- EncryptedKeyHashIdentifierClause.cs
- OleDbCommandBuilder.cs
- AnimationLayer.cs
- indexingfiltermarshaler.cs
- SystemUnicastIPAddressInformation.cs
- TransformerInfoCollection.cs
- Encoding.cs
- TypeConstant.cs
- PropertyManager.cs
- DefaultBinder.cs
- DataRowComparer.cs
- X509CertificateClaimSet.cs
- WebPartMenuStyle.cs
- PolyLineSegmentFigureLogic.cs
- EventLogInternal.cs
- ListViewGroupConverter.cs
- FactoryGenerator.cs
- cache.cs
- AttachedPropertyMethodSelector.cs
- ControlBuilderAttribute.cs
- GcHandle.cs
- BlurEffect.cs
- Visual.cs
- CompressedStack.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- ListViewUpdateEventArgs.cs
- GlyphTypeface.cs
- HtmlTextArea.cs
- ExpanderAutomationPeer.cs
- UIPermission.cs
- PropertyDescriptorCollection.cs
- XmlQuerySequence.cs
- MarkerProperties.cs
- SHA256.cs
- TagPrefixInfo.cs
- PenCursorManager.cs
- MarshalByRefObject.cs
- updatecommandorderer.cs
- MenuItemStyle.cs
- BoolExpressionVisitors.cs
- TypedTableBaseExtensions.cs
- DataTableNewRowEvent.cs
- DropShadowBitmapEffect.cs
- HttpListener.cs
- ComplexObject.cs
- __Filters.cs
- InvalidDataException.cs
- DataGridColumnEventArgs.cs
- ObjectViewEntityCollectionData.cs
- ManagedWndProcTracker.cs
- BindingFormattingDialog.cs
- OletxTransactionFormatter.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- DecimalMinMaxAggregationOperator.cs
- ParseElement.cs
- SBCSCodePageEncoding.cs
- RuleSetReference.cs
- XmlToDatasetMap.cs
- invalidudtexception.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- CompilationSection.cs
- Volatile.cs
- filewebrequest.cs
- ConstNode.cs
- WeakHashtable.cs
- TextEditorSelection.cs
- ControlValuePropertyAttribute.cs
- ContextStaticAttribute.cs
- BookmarkOptionsHelper.cs
- CqlParser.cs
- PropertyGridView.cs
- SimpleBitVector32.cs
- SByteConverter.cs
- DataGridViewLinkCell.cs
- ActiveXHost.cs
- XamlBrushSerializer.cs
- SqlNotificationRequest.cs
- PolicyManager.cs
- MergePropertyDescriptor.cs
- RNGCryptoServiceProvider.cs
- ServiceContractDetailViewControl.cs
- ConnectionManagementElement.cs
- NumericUpDownAccelerationCollection.cs
- Animatable.cs
- XmlILIndex.cs
- XmlConverter.cs
- WebPartConnection.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- FirstQueryOperator.cs
- DownloadProgressEventArgs.cs
- FontNamesConverter.cs
- HandleExceptionArgs.cs
- AnnotationComponentChooser.cs
- Substitution.cs