Code:
/ FX-1434 / FX-1434 / 1.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
- BufferModeSettings.cs
- ClockGroup.cs
- VectorCollectionValueSerializer.cs
- SqlDependency.cs
- OleDbFactory.cs
- IdentityManager.cs
- AndCondition.cs
- SqlErrorCollection.cs
- TimeSpan.cs
- DefaultHttpHandler.cs
- DurableInstance.cs
- ConfigsHelper.cs
- XamlDesignerSerializationManager.cs
- UrlPropertyAttribute.cs
- ConstraintEnumerator.cs
- Viewport3DVisual.cs
- ToolboxItemLoader.cs
- PropertyGridEditorPart.cs
- SchemaInfo.cs
- SByteConverter.cs
- AttachedPropertyMethodSelector.cs
- ScriptReference.cs
- ParameterCollection.cs
- ToolStripRendererSwitcher.cs
- DelimitedListTraceListener.cs
- StringSource.cs
- HtmlInputPassword.cs
- SimpleBitVector32.cs
- XmlKeywords.cs
- DrawingContextWalker.cs
- NotifyInputEventArgs.cs
- Timeline.cs
- TextSearch.cs
- Membership.cs
- SqlInternalConnectionTds.cs
- ApplicationSecurityManager.cs
- RequestCacheEntry.cs
- SecurityState.cs
- DocumentCollection.cs
- EntityContainerAssociationSet.cs
- TypePropertyEditor.cs
- MachinePropertyVariants.cs
- DataControlImageButton.cs
- ConfigurationLocation.cs
- NeedSkipTokenVisitor.cs
- Types.cs
- TempFiles.cs
- OdbcConnectionPoolProviderInfo.cs
- SystemIPv4InterfaceProperties.cs
- Flowchart.cs
- HttpFileCollection.cs
- AsyncOperationManager.cs
- HttpCachePolicy.cs
- SchemaInfo.cs
- HostProtectionPermission.cs
- XslCompiledTransform.cs
- ClientBuildManager.cs
- MsmqHostedTransportConfiguration.cs
- ExternalException.cs
- SqlCachedBuffer.cs
- SqlXmlStorage.cs
- LocalValueEnumerator.cs
- ScaleTransform3D.cs
- HtmlLabelAdapter.cs
- FlowLayoutPanel.cs
- GridViewColumnHeader.cs
- XmlTextEncoder.cs
- FixedDocumentPaginator.cs
- DataGridViewAutoSizeModeEventArgs.cs
- AvTraceDetails.cs
- ResourceReader.cs
- DependencyPropertyChangedEventArgs.cs
- TextEditorSpelling.cs
- ProjectionAnalyzer.cs
- StreamGeometryContext.cs
- HwndSourceParameters.cs
- CallContext.cs
- SmtpFailedRecipientException.cs
- WorkItem.cs
- RSAPKCS1SignatureFormatter.cs
- QilDataSource.cs
- BasePattern.cs
- Storyboard.cs
- Mutex.cs
- ImageAutomationPeer.cs
- WebResourceAttribute.cs
- MetadataArtifactLoaderComposite.cs
- SafeProcessHandle.cs
- XsltContext.cs
- SQLBoolean.cs
- CodeMemberEvent.cs
- DataBoundControlAdapter.cs
- ManagementScope.cs
- RegexParser.cs
- XmlSchemaNotation.cs
- VerificationException.cs
- TextReader.cs
- _RequestCacheProtocol.cs
- SQLInt64.cs
- SweepDirectionValidation.cs