Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripDropDownItemDesigner.cs
- UriTemplateVariableQueryValue.cs
- PreviewControlDesigner.cs
- BaseCollection.cs
- ToolStripItemRenderEventArgs.cs
- _SslSessionsCache.cs
- BufferBuilder.cs
- ClientBuildManager.cs
- ContentElementAutomationPeer.cs
- PrivilegeNotHeldException.cs
- DataGridRowClipboardEventArgs.cs
- TableLayout.cs
- PluggableProtocol.cs
- UriParserTemplates.cs
- SkewTransform.cs
- AnnotationStore.cs
- ScrollProperties.cs
- Adorner.cs
- TextEmbeddedObject.cs
- KoreanCalendar.cs
- DataGridViewRowStateChangedEventArgs.cs
- WebControlParameterProxy.cs
- IIS7WorkerRequest.cs
- MemberInfoSerializationHolder.cs
- SQLMoneyStorage.cs
- TableStyle.cs
- AssemblyCache.cs
- ConnectionsZone.cs
- VariableQuery.cs
- NetworkCredential.cs
- CodeTypeDeclaration.cs
- RegisteredHiddenField.cs
- OutputScopeManager.cs
- ColorDialog.cs
- DesignerView.cs
- TypeDescriptionProviderAttribute.cs
- DeclarationUpdate.cs
- Monitor.cs
- MultipleViewPattern.cs
- wgx_exports.cs
- CodeCatchClause.cs
- ConfigXmlSignificantWhitespace.cs
- GeneratedContractType.cs
- UriSection.cs
- HostingEnvironment.cs
- EnumMember.cs
- ComboBox.cs
- XmlFormatWriterGenerator.cs
- SmtpSection.cs
- HttpContextServiceHost.cs
- ActivityDesignerResources.cs
- DataSetMappper.cs
- NoClickablePointException.cs
- TransactionContext.cs
- DataSourceCache.cs
- DataSourceNameHandler.cs
- NamedPipeChannelFactory.cs
- Lease.cs
- WebPartPersonalization.cs
- RegexInterpreter.cs
- RecordsAffectedEventArgs.cs
- SqlConnectionManager.cs
- SpeechAudioFormatInfo.cs
- TypeDelegator.cs
- AutoGeneratedField.cs
- AmbientLight.cs
- SiteMapSection.cs
- TypeLoadException.cs
- UTF8Encoding.cs
- XmlIlGenerator.cs
- UriScheme.cs
- Int64AnimationUsingKeyFrames.cs
- XmlToDatasetMap.cs
- Image.cs
- WebConfigurationHost.cs
- LocalizableResourceBuilder.cs
- ConnectionProviderAttribute.cs
- UnSafeCharBuffer.cs
- ActivitySurrogate.cs
- JavaScriptString.cs
- PolygonHotSpot.cs
- StructuralType.cs
- UrlAuthorizationModule.cs
- GeneratedCodeAttribute.cs
- QilGenerator.cs
- IndexedGlyphRun.cs
- HtmlControlPersistable.cs
- InheritanceRules.cs
- querybuilder.cs
- SqlCommandSet.cs
- AQNBuilder.cs
- MsmqTransportReceiveParameters.cs
- SecurityResources.cs
- BamlVersionHeader.cs
- StateWorkerRequest.cs
- CanExecuteRoutedEventArgs.cs
- EntityParameterCollection.cs
- LambdaCompiler.cs
- MenuItem.cs
- ResetableIterator.cs