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
- mansign.cs
- XmlSchemaGroupRef.cs
- FixedPage.cs
- basecomparevalidator.cs
- LinkUtilities.cs
- Icon.cs
- RawStylusInput.cs
- HttpServerChannel.cs
- ExpressionBinding.cs
- TraceSection.cs
- PropertyDescriptorGridEntry.cs
- StackSpiller.cs
- EditorAttribute.cs
- HashSet.cs
- selecteditemcollection.cs
- FilteredSchemaElementLookUpTable.cs
- RepeaterCommandEventArgs.cs
- CompressedStack.cs
- ValidatorCompatibilityHelper.cs
- HttpWebRequestElement.cs
- TreeViewDesigner.cs
- DockAndAnchorLayout.cs
- BinaryParser.cs
- AppDomainFactory.cs
- UrlPath.cs
- RefreshPropertiesAttribute.cs
- DependencyPropertyDescriptor.cs
- VectorAnimationBase.cs
- CallbackValidator.cs
- SourceChangedEventArgs.cs
- XmlSchemaExporter.cs
- Wizard.cs
- AnnotationDocumentPaginator.cs
- PolygonHotSpot.cs
- XmlEventCache.cs
- GenericTypeParameterBuilder.cs
- CalloutQueueItem.cs
- Int64Converter.cs
- ControlAdapter.cs
- ConnectionPoolManager.cs
- DecodeHelper.cs
- CompilerHelpers.cs
- CodeMemberProperty.cs
- XslNumber.cs
- TransactionFlowAttribute.cs
- ParameterDataSourceExpression.cs
- Canvas.cs
- DataConnectionHelper.cs
- DashStyle.cs
- MulticastNotSupportedException.cs
- XmlValueConverter.cs
- IDictionary.cs
- RadioButtonRenderer.cs
- LexicalChunk.cs
- HtmlInputCheckBox.cs
- BuilderPropertyEntry.cs
- TextEditorParagraphs.cs
- CreateUserErrorEventArgs.cs
- GroupBox.cs
- XmlSchemaComplexContentExtension.cs
- WriteableBitmap.cs
- TextReader.cs
- DataBindingCollection.cs
- MaskedTextBoxDesigner.cs
- CodeDOMProvider.cs
- EntityDataSourceDesignerHelper.cs
- SmtpReplyReaderFactory.cs
- SqlDataSourceCustomCommandPanel.cs
- Serializer.cs
- ZipIOExtraFieldPaddingElement.cs
- NamedObject.cs
- FixedSOMTextRun.cs
- ArrayConverter.cs
- AppDomainManager.cs
- XmlSchemaAppInfo.cs
- QilInvokeEarlyBound.cs
- ResetableIterator.cs
- GridViewRow.cs
- WrappedIUnknown.cs
- MappedMetaModel.cs
- LocationChangedEventArgs.cs
- LineServicesCallbacks.cs
- ProcessStartInfo.cs
- XsltException.cs
- AnnotationResourceCollection.cs
- PowerModeChangedEventArgs.cs
- MethodBody.cs
- StringValidatorAttribute.cs
- WS2007HttpBindingElement.cs
- FileUtil.cs
- ExternalFile.cs
- TextEndOfLine.cs
- RunInstallerAttribute.cs
- RegexFCD.cs
- TrackingConditionCollection.cs
- RuleSettingsCollection.cs
- BinaryObjectReader.cs
- EntityStoreSchemaGenerator.cs
- AdornerHitTestResult.cs
- PageEventArgs.cs