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
- StreamingContext.cs
- ObjectItemConventionAssemblyLoader.cs
- ObjectAnimationUsingKeyFrames.cs
- WSTrustDec2005.cs
- DataObjectCopyingEventArgs.cs
- CodeVariableDeclarationStatement.cs
- WebPartDescriptionCollection.cs
- ComponentResourceKeyConverter.cs
- TouchesOverProperty.cs
- ContextMenuAutomationPeer.cs
- CryptoKeySecurity.cs
- TextServicesPropertyRanges.cs
- HwndProxyElementProvider.cs
- TaiwanLunisolarCalendar.cs
- BaseTemplateCodeDomTreeGenerator.cs
- MemoryFailPoint.cs
- XsdDateTime.cs
- ObservableCollection.cs
- Delegate.cs
- followingquery.cs
- MouseWheelEventArgs.cs
- Package.cs
- SqlTriggerAttribute.cs
- FixedTextSelectionProcessor.cs
- SqlDataSourceConnectionPanel.cs
- SqlMetaData.cs
- Zone.cs
- HandlerFactoryCache.cs
- CodeDirectiveCollection.cs
- StringCollection.cs
- XmlSignificantWhitespace.cs
- Executor.cs
- PartialTrustVisibleAssembly.cs
- HttpDictionary.cs
- WebBrowserEvent.cs
- WebPart.cs
- NetworkInterface.cs
- QueryExecutionOption.cs
- FamilyTypefaceCollection.cs
- Permission.cs
- UnaryNode.cs
- DataSourceSelectArguments.cs
- _NegoState.cs
- SiteMapSection.cs
- SecurityUtils.cs
- GroupQuery.cs
- SmtpReplyReader.cs
- Imaging.cs
- SimpleBitVector32.cs
- WorkflowDesignerColors.cs
- FacetEnabledSchemaElement.cs
- GuidTagList.cs
- ClonableStack.cs
- XPathBinder.cs
- ChtmlPageAdapter.cs
- SafeSystemMetrics.cs
- SequenceFullException.cs
- RewritingPass.cs
- PermissionSetTriple.cs
- HandlerMappingMemo.cs
- BaseProcessor.cs
- PenThreadWorker.cs
- DesignerAttributeInfo.cs
- IntSecurity.cs
- QueryOperationResponseOfT.cs
- HttpCachePolicyElement.cs
- DataGridViewColumnConverter.cs
- WmfPlaceableFileHeader.cs
- ScriptManager.cs
- ItemsControlAutomationPeer.cs
- BaseCAMarshaler.cs
- ConstraintCollection.cs
- Light.cs
- ConfigXmlCDataSection.cs
- WaitHandle.cs
- InstalledFontCollection.cs
- SimpleNameService.cs
- TreeView.cs
- OrderedDictionary.cs
- TypeValidationEventArgs.cs
- DataGridViewRowStateChangedEventArgs.cs
- AnnotationHighlightLayer.cs
- APCustomTypeDescriptor.cs
- TextBreakpoint.cs
- Hyperlink.cs
- AssemblyResourceLoader.cs
- WaitingCursor.cs
- TableCell.cs
- HttpCapabilitiesEvaluator.cs
- TemplateDefinition.cs
- ProfileProvider.cs
- WebSysDisplayNameAttribute.cs
- Image.cs
- ColorDialog.cs
- OdbcErrorCollection.cs
- _OverlappedAsyncResult.cs
- ISAPIApplicationHost.cs
- OdbcConnectionString.cs
- SafeViewOfFileHandle.cs
- LoginUtil.cs