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
- DoubleCollectionConverter.cs
- IMembershipProvider.cs
- SingleQueryOperator.cs
- DecoderReplacementFallback.cs
- BaseCollection.cs
- UpdateProgress.cs
- Label.cs
- Semaphore.cs
- WeakReference.cs
- ProfileModule.cs
- Debug.cs
- TextContainerChangedEventArgs.cs
- TextTreeInsertElementUndoUnit.cs
- UIElementPropertyUndoUnit.cs
- MemberMaps.cs
- DataGridColumn.cs
- TextBoxAutomationPeer.cs
- CleanUpVirtualizedItemEventArgs.cs
- ImageIndexConverter.cs
- CLSCompliantAttribute.cs
- ResolveMatchesApril2005.cs
- PageThemeBuildProvider.cs
- XmlCodeExporter.cs
- UnmanagedMemoryStreamWrapper.cs
- RadioButton.cs
- XmlSchemaSet.cs
- MouseGesture.cs
- DynamicValueConverter.cs
- AuthenticateEventArgs.cs
- SynchronizationContext.cs
- DataControlFieldCell.cs
- AssociatedControlConverter.cs
- GridViewRowCollection.cs
- TypeLoadException.cs
- FixedPageProcessor.cs
- RowBinding.cs
- LocalizabilityAttribute.cs
- BaseValidatorDesigner.cs
- SystemIPInterfaceStatistics.cs
- XmlnsCompatibleWithAttribute.cs
- _SafeNetHandles.cs
- WebPartHelpVerb.cs
- DesignerAutoFormatCollection.cs
- XmlSchemaProviderAttribute.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- PaperSource.cs
- ProfileInfo.cs
- FilterQueryOptionExpression.cs
- DataServiceHost.cs
- EntityRecordInfo.cs
- AutomationPatternInfo.cs
- LabelAutomationPeer.cs
- PointAnimation.cs
- SmiRequestExecutor.cs
- TemplateControlBuildProvider.cs
- OrderedDictionaryStateHelper.cs
- SelectionProcessor.cs
- CodeMethodInvokeExpression.cs
- ContentDisposition.cs
- FixedNode.cs
- ScrollBar.cs
- XmlNode.cs
- securitycriticaldataClass.cs
- TemplatePagerField.cs
- ExpressionContext.cs
- ChtmlTextWriter.cs
- TextBoxRenderer.cs
- DataGridViewButtonCell.cs
- SchemaTypeEmitter.cs
- WindowsListViewItemStartMenu.cs
- DataBoundLiteralControl.cs
- MaskedTextProvider.cs
- Registry.cs
- WizardPanelChangingEventArgs.cs
- StructuredProperty.cs
- DriveNotFoundException.cs
- MbpInfo.cs
- ListViewAutomationPeer.cs
- AppModelKnownContentFactory.cs
- Query.cs
- ExceptionNotification.cs
- DataGridColumnReorderingEventArgs.cs
- SafeSystemMetrics.cs
- DiagnosticsElement.cs
- DataGridViewRowHeaderCell.cs
- ObjectListCommandEventArgs.cs
- ProbeDuplexCD1AsyncResult.cs
- CompoundFileReference.cs
- OptimisticConcurrencyException.cs
- DATA_BLOB.cs
- Keyboard.cs
- SqlConnectionString.cs
- HierarchicalDataBoundControl.cs
- OperatingSystem.cs
- TripleDES.cs
- MemberAssignment.cs
- SqlException.cs
- ElementAtQueryOperator.cs
- GeometryHitTestResult.cs
- LogicalTreeHelper.cs