Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridAddNewRow.cs / 1305376 / 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
- JoinGraph.cs
- FixedSOMGroup.cs
- TrustLevel.cs
- Ref.cs
- ObsoleteAttribute.cs
- TabPage.cs
- XmlDataSourceNodeDescriptor.cs
- EntityDesignerBuildProvider.cs
- BasicKeyConstraint.cs
- XamlTemplateSerializer.cs
- TextRangeProviderWrapper.cs
- CodeCatchClauseCollection.cs
- TextLine.cs
- WhitespaceRuleReader.cs
- TextEditorTables.cs
- JoinSymbol.cs
- FragmentNavigationEventArgs.cs
- HostedHttpRequestAsyncResult.cs
- QilChoice.cs
- AssociatedControlConverter.cs
- HTMLTagNameToTypeMapper.cs
- Currency.cs
- FlowDocumentFormatter.cs
- Light.cs
- Label.cs
- Substitution.cs
- TextAutomationPeer.cs
- DataGridTable.cs
- ConfigurationElement.cs
- UniqueEventHelper.cs
- EntityViewGenerationAttribute.cs
- log.cs
- DeflateEmulationStream.cs
- RowToParametersTransformer.cs
- FormatSettings.cs
- VariableExpressionConverter.cs
- AutomationPatternInfo.cs
- GenericWebPart.cs
- QueryAsyncResult.cs
- NamedPipeHostedTransportConfiguration.cs
- ProfileModule.cs
- ViewDesigner.cs
- UndoEngine.cs
- InvalidEnumArgumentException.cs
- GeneralTransform3DCollection.cs
- SystemNetHelpers.cs
- TextBox.cs
- CodeCatchClauseCollection.cs
- DataGridBoolColumn.cs
- OperandQuery.cs
- LinearGradientBrush.cs
- LinqDataSourceValidationException.cs
- FlowNode.cs
- IndexerNameAttribute.cs
- ParseNumbers.cs
- ExtendedPropertyDescriptor.cs
- EnvelopedPkcs7.cs
- CustomExpression.cs
- ResourceDescriptionAttribute.cs
- XmlWrappingWriter.cs
- XPathArrayIterator.cs
- BitStream.cs
- SapiRecoInterop.cs
- DataGrid.cs
- MimeMapping.cs
- TextSimpleMarkerProperties.cs
- ListBindingHelper.cs
- ThreadPool.cs
- DBAsyncResult.cs
- HtmlSelect.cs
- VirtualPath.cs
- TogglePattern.cs
- SQLBytesStorage.cs
- ParameterToken.cs
- UpdatePanelTriggerCollection.cs
- XmlAggregates.cs
- ToolboxService.cs
- DrawingContextDrawingContextWalker.cs
- RowVisual.cs
- FontDialog.cs
- ServiceElement.cs
- UIElement.cs
- NameValueConfigurationElement.cs
- Bitmap.cs
- ShaderEffect.cs
- WorkflowQueue.cs
- XAMLParseException.cs
- RectangleConverter.cs
- FontFamilyIdentifier.cs
- DataObjectMethodAttribute.cs
- ControlBuilderAttribute.cs
- ServiceModelPerformanceCounters.cs
- Types.cs
- ModelService.cs
- WebBrowserSiteBase.cs
- DataSourceCache.cs
- WebRequestModuleElementCollection.cs
- EventNotify.cs
- Calendar.cs
- LinkedList.cs