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
- FontCollection.cs
- RetrieveVirtualItemEventArgs.cs
- HandlerBase.cs
- _NestedMultipleAsyncResult.cs
- hresults.cs
- UnmanagedMarshal.cs
- MsmqActivation.cs
- FilteredDataSetHelper.cs
- SrgsNameValueTag.cs
- CompositeActivityDesigner.cs
- TabControlCancelEvent.cs
- SecurityTokenSerializer.cs
- SoapHeaders.cs
- DataGridViewControlCollection.cs
- ResourceDictionaryCollection.cs
- RoutedUICommand.cs
- MetaModel.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- TimerEventSubscription.cs
- Compiler.cs
- GlyphCollection.cs
- InvalidCastException.cs
- IndexedGlyphRun.cs
- IsolatedStorageException.cs
- RemoveStoryboard.cs
- SessionIDManager.cs
- BuildManager.cs
- InvokeProviderWrapper.cs
- Splitter.cs
- BrowserDefinitionCollection.cs
- Deflater.cs
- BinaryExpressionHelper.cs
- SafeMILHandle.cs
- DataTableExtensions.cs
- ConfigXmlDocument.cs
- TextEditorTyping.cs
- XmlAnyElementAttribute.cs
- TypeDependencyAttribute.cs
- ScaleTransform3D.cs
- MenuScrollingVisibilityConverter.cs
- Convert.cs
- SiteMapProvider.cs
- X509KeyIdentifierClauseType.cs
- InternalConfigConfigurationFactory.cs
- Keyboard.cs
- MappedMetaModel.cs
- Base64Decoder.cs
- AssemblyAttributes.cs
- Point3DValueSerializer.cs
- MetadataArtifactLoader.cs
- SafeProcessHandle.cs
- DashStyles.cs
- StrongNameHelpers.cs
- ParserOptions.cs
- ProtocolViolationException.cs
- XmlReaderDelegator.cs
- TextParaLineResult.cs
- LicFileLicenseProvider.cs
- EntityWrapperFactory.cs
- StyleBamlTreeBuilder.cs
- ResXResourceSet.cs
- OneOfScalarConst.cs
- DefaultHttpHandler.cs
- PeerPresenceInfo.cs
- MailMessageEventArgs.cs
- PrinterUnitConvert.cs
- JsonObjectDataContract.cs
- FileNameEditor.cs
- Win32Exception.cs
- GenericXmlSecurityToken.cs
- UriScheme.cs
- ExtentKey.cs
- SchemaMapping.cs
- ChildTable.cs
- GeometryCollection.cs
- CommandPlan.cs
- ImplicitInputBrush.cs
- ETagAttribute.cs
- AttributeProviderAttribute.cs
- CustomTrackingQuery.cs
- DatatypeImplementation.cs
- DrawItemEvent.cs
- HttpConfigurationSystem.cs
- PropertyGridEditorPart.cs
- BindingMAnagerBase.cs
- LinkedList.cs
- DelegateTypeInfo.cs
- AutoCompleteStringCollection.cs
- SharedPerformanceCounter.cs
- OleDbEnumerator.cs
- BreakRecordTable.cs
- HtmlSelect.cs
- HttpServerUtilityBase.cs
- SafeLocalAllocation.cs
- SafeHandle.cs
- ConcurrentDictionary.cs
- XhtmlBasicImageAdapter.cs
- ApplicationActivator.cs
- WebColorConverter.cs
- TaskFormBase.cs