Code:
/ DotNET / DotNET / 8.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
- EnumValAlphaComparer.cs
- Point3DValueSerializer.cs
- FontStretchConverter.cs
- WinEventHandler.cs
- MailDefinition.cs
- WeakEventTable.cs
- InternalBase.cs
- PropertyOverridesDialog.cs
- AnimationClockResource.cs
- Pen.cs
- OleDbRowUpdatedEvent.cs
- ResolvedKeyFrameEntry.cs
- SingleKeyFrameCollection.cs
- AsyncPostBackErrorEventArgs.cs
- TextTreeText.cs
- DocumentSequenceHighlightLayer.cs
- NameSpaceEvent.cs
- WebPartMovingEventArgs.cs
- HttpCachePolicyWrapper.cs
- Int32CAMarshaler.cs
- AddInAttribute.cs
- AliasedExpr.cs
- DataRow.cs
- OpacityConverter.cs
- XXXOnTypeBuilderInstantiation.cs
- AppendHelper.cs
- MsmqNonTransactedPoisonHandler.cs
- FacetDescription.cs
- CategoryAttribute.cs
- MinimizableAttributeTypeConverter.cs
- DesignerForm.cs
- InvalidPipelineStoreException.cs
- SimpleType.cs
- NamespaceExpr.cs
- ExpressionPrefixAttribute.cs
- UnmanagedBitmapWrapper.cs
- Error.cs
- PtsHost.cs
- UInt32Converter.cs
- Currency.cs
- BlockUIContainer.cs
- SQLMoney.cs
- DataObjectSettingDataEventArgs.cs
- DPTypeDescriptorContext.cs
- PathFigureCollectionConverter.cs
- XmlSignificantWhitespace.cs
- ContextMarshalException.cs
- DtdParser.cs
- UnaryQueryOperator.cs
- FunctionParameter.cs
- DTCTransactionManager.cs
- WmlSelectionListAdapter.cs
- Base64Encoder.cs
- SuppressIldasmAttribute.cs
- BezierSegment.cs
- PenThread.cs
- AsymmetricKeyExchangeDeformatter.cs
- WindowsPrincipal.cs
- BufferModesCollection.cs
- SiteMapSection.cs
- AssociationSet.cs
- RangeValidator.cs
- ConstraintEnumerator.cs
- TypeInitializationException.cs
- ListViewInsertionMark.cs
- CodePageUtils.cs
- DataGridTextBoxColumn.cs
- CounterSampleCalculator.cs
- RepeaterCommandEventArgs.cs
- CombinedGeometry.cs
- ExpressionWriter.cs
- ProviderSettingsCollection.cs
- ToolBarTray.cs
- ChildTable.cs
- StructuredCompositeActivityDesigner.cs
- Transactions.cs
- EntityDataSourceSelectingEventArgs.cs
- sqlmetadatafactory.cs
- sapiproxy.cs
- HelpEvent.cs
- Attributes.cs
- TreeSet.cs
- LifetimeManager.cs
- _ProxyChain.cs
- OracleInternalConnection.cs
- WebScriptMetadataInstanceContextProvider.cs
- ReflectionTypeLoadException.cs
- CursorConverter.cs
- DefaultBindingPropertyAttribute.cs
- PersonalizationProviderCollection.cs
- DbConnectionPool.cs
- TreeNodeCollectionEditor.cs
- SharedDp.cs
- PolygonHotSpot.cs
- UriParserTemplates.cs
- StyleBamlTreeBuilder.cs
- safesecurityhelperavalon.cs
- BooleanAnimationBase.cs
- GPPOINT.cs
- ThemeableAttribute.cs