Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Atom10FeedFormatter.cs
- CryptoStream.cs
- PeerServiceMessageContracts.cs
- ViewSimplifier.cs
- DirectionalLight.cs
- TableFieldsEditor.cs
- MetaModel.cs
- COM2PictureConverter.cs
- HttpBrowserCapabilitiesWrapper.cs
- TraceSwitch.cs
- FontEditor.cs
- DataGridAddNewRow.cs
- webclient.cs
- MessageSecurityOverHttp.cs
- DataRecordInfo.cs
- WsdlImporterElementCollection.cs
- DynamicPhysicalDiscoSearcher.cs
- Int64Animation.cs
- ExceptionUtil.cs
- SHA256Managed.cs
- ImageEditor.cs
- DBSchemaTable.cs
- UIPropertyMetadata.cs
- SoapProtocolReflector.cs
- DeviceFiltersSection.cs
- ActivityBindForm.cs
- ClientConfigurationSystem.cs
- sqlstateclientmanager.cs
- _DomainName.cs
- ScrollEventArgs.cs
- MDIClient.cs
- XamlToRtfParser.cs
- BitmapImage.cs
- HuffModule.cs
- InProcStateClientManager.cs
- FrameworkTextComposition.cs
- WebPartsPersonalization.cs
- RegexCompiler.cs
- PropertyFilter.cs
- HttpInputStream.cs
- PublishLicense.cs
- ClientType.cs
- TextShapeableCharacters.cs
- DesignerDataView.cs
- XmlSerializableReader.cs
- ListBindingHelper.cs
- _SslSessionsCache.cs
- MarkerProperties.cs
- InheritanceContextChangedEventManager.cs
- ExceptionUtil.cs
- ColorConvertedBitmapExtension.cs
- storepermissionattribute.cs
- HostedTransportConfigurationBase.cs
- linebase.cs
- PathTooLongException.cs
- InvokeWebServiceDesigner.cs
- ApplicationProxyInternal.cs
- CheckedPointers.cs
- Event.cs
- VisualStyleTypesAndProperties.cs
- TransactionManagerProxy.cs
- RefreshEventArgs.cs
- FileRecordSequenceCompletedAsyncResult.cs
- Baml2006KeyRecord.cs
- PreviewPageInfo.cs
- MessageEventSubscriptionService.cs
- SoapSchemaImporter.cs
- IpcPort.cs
- DbCommandTree.cs
- SelectionProviderWrapper.cs
- ListenerAdaptersInstallComponent.cs
- PersistenceTypeAttribute.cs
- IncrementalReadDecoders.cs
- XPathDocument.cs
- WorkflowView.cs
- XComponentModel.cs
- ExceptionRoutedEventArgs.cs
- CSharpCodeProvider.cs
- LicenseContext.cs
- FileSystemInfo.cs
- TypeConverter.cs
- XmlToDatasetMap.cs
- xsdvalidator.cs
- CalendarDesigner.cs
- ClientUrlResolverWrapper.cs
- EdmComplexTypeAttribute.cs
- ValidationRuleCollection.cs
- PageAdapter.cs
- Geometry.cs
- IProvider.cs
- StructuredTypeInfo.cs
- EntityParameterCollection.cs
- XmlIlTypeHelper.cs
- CultureSpecificStringDictionary.cs
- ClientScriptItem.cs
- SymbolMethod.cs
- AssociationSetMetadata.cs
- BooleanFacetDescriptionElement.cs
- RestClientProxyHandler.cs
- SimpleMailWebEventProvider.cs