Code:
/ FX-1434 / FX-1434 / 1.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
- RoutedPropertyChangedEventArgs.cs
- PeerContact.cs
- Italic.cs
- PTUtility.cs
- XPathNavigatorReader.cs
- sqlpipe.cs
- SQLDouble.cs
- UnsafeNativeMethods.cs
- SqlReorderer.cs
- SemanticTag.cs
- ResourceDefaultValueAttribute.cs
- GenerateScriptTypeAttribute.cs
- UserNameSecurityToken.cs
- WebServiceErrorEvent.cs
- SqlCacheDependencyDatabase.cs
- LightweightCodeGenerator.cs
- DesignerActionList.cs
- ToolStripDropDownButton.cs
- ComponentResourceManager.cs
- DrawingGroup.cs
- UnmanagedMemoryStreamWrapper.cs
- VarInfo.cs
- StorageBasedPackageProperties.cs
- ToolStripMenuItemCodeDomSerializer.cs
- AtomServiceDocumentSerializer.cs
- SharedMemory.cs
- SystemResourceKey.cs
- AssemblyInfo.cs
- DeploymentExceptionMapper.cs
- TypeRestriction.cs
- IDQuery.cs
- Axis.cs
- _TransmitFileOverlappedAsyncResult.cs
- FileIOPermission.cs
- ToolStripItemDesigner.cs
- ServerReliableChannelBinder.cs
- DispatcherOperation.cs
- XXXInfos.cs
- EntryWrittenEventArgs.cs
- FrameworkRichTextComposition.cs
- Inflater.cs
- TimeManager.cs
- FilteredAttributeCollection.cs
- PhysicalOps.cs
- ResourceAttributes.cs
- SmtpFailedRecipientsException.cs
- DataSourceSerializationException.cs
- TextRunTypographyProperties.cs
- DashStyle.cs
- CodeIdentifier.cs
- WindowsAuthenticationModule.cs
- Roles.cs
- SafeEventLogWriteHandle.cs
- InstanceHandleConflictException.cs
- CachedPathData.cs
- PropertyEmitter.cs
- ObjectDataSourceSelectingEventArgs.cs
- configsystem.cs
- baseaxisquery.cs
- FlowLayoutPanel.cs
- safemediahandle.cs
- ConnectionInterfaceCollection.cs
- ExpressionTextBox.xaml.cs
- IIS7UserPrincipal.cs
- DataSourceCache.cs
- ContractMapping.cs
- coordinatorfactory.cs
- ToolStripRenderer.cs
- StrokeCollection.cs
- SchemaInfo.cs
- AuthenticationConfig.cs
- OperatorExpressions.cs
- XmlSerializerFactory.cs
- EntitySetBaseCollection.cs
- ACE.cs
- Brush.cs
- DBParameter.cs
- ValueConversionAttribute.cs
- ActiveXHost.cs
- TextServicesDisplayAttributePropertyRanges.cs
- TransactionScope.cs
- BindingsSection.cs
- PieceDirectory.cs
- Hyperlink.cs
- SQLBinary.cs
- SchemaDeclBase.cs
- Line.cs
- TraceEventCache.cs
- OutputCacheModule.cs
- ScriptingWebServicesSectionGroup.cs
- RouteValueExpressionBuilder.cs
- ThreadInterruptedException.cs
- CollectionBuilder.cs
- ConfigPathUtility.cs
- HttpListenerRequest.cs
- TabControlCancelEvent.cs
- SoapEnumAttribute.cs
- SecurityTokenSerializer.cs
- FixUpCollection.cs
- PackagingUtilities.cs