Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- SolidColorBrush.cs
- WriteFileContext.cs
- PathSegment.cs
- SpellerError.cs
- SerialReceived.cs
- Vector3DIndependentAnimationStorage.cs
- ExceptionAggregator.cs
- DPCustomTypeDescriptor.cs
- SmtpCommands.cs
- CollectionEditVerbManager.cs
- CompilerResults.cs
- invalidudtexception.cs
- QuotedStringFormatReader.cs
- JsonFormatWriterGenerator.cs
- HebrewNumber.cs
- HyperLinkStyle.cs
- DataGridViewCellValueEventArgs.cs
- ShapingEngine.cs
- TemplateEditingVerb.cs
- TypeResolvingOptions.cs
- AsyncOperation.cs
- DataSourceExpression.cs
- UndirectedGraph.cs
- TransactionBridgeSection.cs
- DisplayNameAttribute.cs
- DescendantBaseQuery.cs
- ToolStripTemplateNode.cs
- ZipIOLocalFileHeader.cs
- Blend.cs
- Transactions.cs
- ApplyImportsAction.cs
- HttpRequestBase.cs
- AnimatedTypeHelpers.cs
- InternalMappingException.cs
- MenuAdapter.cs
- DataComponentMethodGenerator.cs
- XmlUtil.cs
- WebPartConnectionsCancelEventArgs.cs
- TypeToTreeConverter.cs
- __ComObject.cs
- TdsParserHelperClasses.cs
- ManipulationStartedEventArgs.cs
- DiscriminatorMap.cs
- CodeDomDesignerLoader.cs
- ListBox.cs
- VoiceSynthesis.cs
- RegexCode.cs
- FlowDocumentFormatter.cs
- RuntimeResourceSet.cs
- PassportPrincipal.cs
- FixedSOMTableRow.cs
- ECDiffieHellmanPublicKey.cs
- DrawListViewSubItemEventArgs.cs
- ScrollItemPattern.cs
- SettingsPropertyCollection.cs
- MessageDispatch.cs
- ProxyHelper.cs
- HttpModuleActionCollection.cs
- ContainerVisual.cs
- SoapInteropTypes.cs
- RegexRunnerFactory.cs
- DelegateSerializationHolder.cs
- EmulateRecognizeCompletedEventArgs.cs
- ConnectionPointCookie.cs
- TerminateDesigner.cs
- ComponentEditorPage.cs
- IsolatedStorageException.cs
- SqlDataSourceCommandEventArgs.cs
- SystemIPInterfaceStatistics.cs
- DataSourceXmlClassAttribute.cs
- DateTimeOffset.cs
- ReadOnlyCollectionBase.cs
- SafeLibraryHandle.cs
- Misc.cs
- SchemaObjectWriter.cs
- DesignBindingEditor.cs
- ThemeConfigurationDialog.cs
- OrderedDictionary.cs
- AmbientLight.cs
- ComContractElement.cs
- System.Data_BID.cs
- DbXmlEnabledProviderManifest.cs
- OdbcInfoMessageEvent.cs
- XmlNavigatorFilter.cs
- MgmtConfigurationRecord.cs
- Duration.cs
- SQLBinary.cs
- WebUtil.cs
- MediaSystem.cs
- sqlmetadatafactory.cs
- ValuePatternIdentifiers.cs
- DecimalAnimationUsingKeyFrames.cs
- Directory.cs
- LoadMessageLogger.cs
- ErrorRuntimeConfig.cs
- ToolboxControl.cs
- DockingAttribute.cs
- ParentQuery.cs
- MeshGeometry3D.cs
- ChannelSinkStacks.cs