Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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. // //----------------------------------------------------------------------------- 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
- InstanceContextManager.cs
- ClientTargetSection.cs
- TextEffect.cs
- TemplateKeyConverter.cs
- Types.cs
- NavigationExpr.cs
- CopyOfAction.cs
- DataTableTypeConverter.cs
- SevenBitStream.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- CacheModeValueSerializer.cs
- BufferedGraphicsManager.cs
- MenuAdapter.cs
- DataKey.cs
- IsolatedStorageFile.cs
- MemberMaps.cs
- MessageOperationFormatter.cs
- Types.cs
- MissingManifestResourceException.cs
- RuleDefinitions.cs
- EventDescriptorCollection.cs
- StaticFileHandler.cs
- SqlGenerator.cs
- TypeCacheManager.cs
- RSAPKCS1KeyExchangeFormatter.cs
- HandlerMappingMemo.cs
- EnumBuilder.cs
- BinaryReader.cs
- CertificateManager.cs
- FrameworkElement.cs
- SchemaInfo.cs
- PtsHelper.cs
- MemberRelationshipService.cs
- RadioButton.cs
- ExceptionValidationRule.cs
- DataServiceHostWrapper.cs
- RouteItem.cs
- VirtualPathProvider.cs
- TagNameToTypeMapper.cs
- TableCell.cs
- SectionRecord.cs
- StorageEndPropertyMapping.cs
- Point.cs
- SwitchLevelAttribute.cs
- SuppressMergeCheckAttribute.cs
- DbParameterCollectionHelper.cs
- SerializationException.cs
- RelationshipDetailsRow.cs
- RegexMatch.cs
- MediaPlayer.cs
- ReadWriteObjectLock.cs
- COSERVERINFO.cs
- WindowCollection.cs
- EnumBuilder.cs
- HttpPostedFileBase.cs
- ClientApiGenerator.cs
- DirectoryGroupQuery.cs
- DeflateEmulationStream.cs
- InfiniteIntConverter.cs
- SqlConnectionFactory.cs
- SupportsEventValidationAttribute.cs
- HttpRequestTraceRecord.cs
- SortQuery.cs
- InvokePatternIdentifiers.cs
- CodeSnippetStatement.cs
- CdpEqualityComparer.cs
- BitmapEffect.cs
- HierarchicalDataSourceControl.cs
- VisualTarget.cs
- UnsafeNativeMethodsTablet.cs
- HtmlInputButton.cs
- WebPageTraceListener.cs
- InProcStateClientManager.cs
- UnsafeNativeMethods.cs
- ToolStripTemplateNode.cs
- PropertyKey.cs
- ClientSponsor.cs
- ProvidersHelper.cs
- XsdBuildProvider.cs
- CleanUpVirtualizedItemEventArgs.cs
- ZeroOpNode.cs
- Parameter.cs
- ZipFileInfo.cs
- XomlCompilerParameters.cs
- HttpApplication.cs
- Listbox.cs
- RuleSetCollection.cs
- DoneReceivingAsyncResult.cs
- NavigatorInput.cs
- Attributes.cs
- Collection.cs
- IfAction.cs
- VideoDrawing.cs
- ViewSimplifier.cs
- ListViewGroupConverter.cs
- ConfigurationLoader.cs
- Currency.cs
- _CommandStream.cs
- WpfSharedXamlSchemaContext.cs
- SafeSerializationManager.cs