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
- SqlUserDefinedAggregateAttribute.cs
- MappingMetadataHelper.cs
- StructuredProperty.cs
- MouseActionValueSerializer.cs
- Descriptor.cs
- FragmentQuery.cs
- RemoteHelper.cs
- Thickness.cs
- NameTable.cs
- OutKeywords.cs
- CommonObjectSecurity.cs
- OpenTypeMethods.cs
- Transactions.cs
- ElementProxy.cs
- CheckBoxField.cs
- EventHandlerList.cs
- NamespaceDisplay.xaml.cs
- ColorAnimation.cs
- FtpCachePolicyElement.cs
- WaitHandleCannotBeOpenedException.cs
- Misc.cs
- XmlHierarchicalDataSourceView.cs
- SpotLight.cs
- PngBitmapEncoder.cs
- ExecutionEngineException.cs
- ListSourceHelper.cs
- FrameworkObject.cs
- CodeParameterDeclarationExpressionCollection.cs
- MyContact.cs
- KeyValuePair.cs
- EntitySetDataBindingList.cs
- LayoutEvent.cs
- XmlProcessingInstruction.cs
- BufferedGraphicsContext.cs
- TimelineCollection.cs
- HtmlElement.cs
- StreamWithDictionary.cs
- PeerCustomResolverSettings.cs
- MexHttpsBindingCollectionElement.cs
- CodeTypeDelegate.cs
- ConfigurationManagerHelper.cs
- Registry.cs
- PropertyToken.cs
- MessageQueueConverter.cs
- OperandQuery.cs
- TypeSource.cs
- SqlTypeSystemProvider.cs
- DataGridViewSortCompareEventArgs.cs
- ThemeInfoAttribute.cs
- ContextProperty.cs
- UrlMappingsModule.cs
- ScrollBarRenderer.cs
- ButtonBase.cs
- IPAddressCollection.cs
- ViewDesigner.cs
- EditorPartChrome.cs
- FlowDocumentView.cs
- DataGridViewBand.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- AmbientLight.cs
- Vertex.cs
- ImageListUtils.cs
- IImplicitResourceProvider.cs
- AbsoluteQuery.cs
- Variant.cs
- EventsTab.cs
- ObsoleteAttribute.cs
- SeverityFilter.cs
- SupportsEventValidationAttribute.cs
- ContextMenuStrip.cs
- XslException.cs
- ServiceParser.cs
- TemplateInstanceAttribute.cs
- AccessViolationException.cs
- MetadataSource.cs
- InheritedPropertyDescriptor.cs
- PipelineModuleStepContainer.cs
- AccessibleObject.cs
- ToolStripDropDown.cs
- PersonalizationState.cs
- ECDiffieHellmanCng.cs
- DiscoveryClientRequestChannel.cs
- RemotingConfiguration.cs
- WriteFileContext.cs
- WebChannelFactory.cs
- WinFormsSpinner.cs
- TagMapCollection.cs
- DataGridViewCellStyleConverter.cs
- ExpandedWrapper.cs
- GeneralTransformCollection.cs
- MiniParameterInfo.cs
- ActivityXRefConverter.cs
- DecoderBestFitFallback.cs
- CapacityStreamGeometryContext.cs
- ContainerParaClient.cs
- RowToParametersTransformer.cs
- WsdlInspector.cs
- Window.cs
- NullableDecimalSumAggregationOperator.cs
- ExtensionQuery.cs