Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- CaretElement.cs
- InertiaExpansionBehavior.cs
- ClientScriptItem.cs
- DataTableNewRowEvent.cs
- ProtocolElement.cs
- RichTextBoxDesigner.cs
- ArgIterator.cs
- TextWriter.cs
- NameTable.cs
- ArgumentException.cs
- TraceContextRecord.cs
- WorkflowServiceAttributes.cs
- ObjectViewEntityCollectionData.cs
- MarginCollapsingState.cs
- NavigationWindowAutomationPeer.cs
- TreeView.cs
- WeakReferenceKey.cs
- CheckableControlBaseAdapter.cs
- DataGridViewUtilities.cs
- SQLGuid.cs
- Int32Rect.cs
- HostSecurityManager.cs
- SplineQuaternionKeyFrame.cs
- HtmlEncodedRawTextWriter.cs
- EncryptedPackage.cs
- SerializationInfo.cs
- FileDataSourceCache.cs
- WebConfigurationFileMap.cs
- FileDialogCustomPlacesCollection.cs
- DynamicRenderer.cs
- MetadataPropertyvalue.cs
- XmlQueryCardinality.cs
- __Error.cs
- InboundActivityHelper.cs
- MethodToken.cs
- SqlLiftIndependentRowExpressions.cs
- DataGridViewColumnStateChangedEventArgs.cs
- Schema.cs
- CapabilitiesUse.cs
- SQLByteStorage.cs
- Root.cs
- MenuCommands.cs
- CharConverter.cs
- ListSortDescription.cs
- OpenCollectionAsyncResult.cs
- SHA256CryptoServiceProvider.cs
- TransactionScope.cs
- SafeNativeHandle.cs
- HTMLTextWriter.cs
- __ComObject.cs
- XPathConvert.cs
- CursorConverter.cs
- EntityDataSourceQueryBuilder.cs
- ComboBoxItem.cs
- PriorityRange.cs
- Query.cs
- MasterPageParser.cs
- PenThreadPool.cs
- HMACSHA256.cs
- DockAndAnchorLayout.cs
- Thickness.cs
- GACMembershipCondition.cs
- WebPartCancelEventArgs.cs
- DataGridViewControlCollection.cs
- SqlConnectionPoolGroupProviderInfo.cs
- CategoryGridEntry.cs
- PeerNameRecord.cs
- CommandDevice.cs
- TextEditorCopyPaste.cs
- IsolatedStorageFile.cs
- WebConvert.cs
- ConnectionString.cs
- CurrencyWrapper.cs
- KerberosReceiverSecurityToken.cs
- LongValidator.cs
- WmlImageAdapter.cs
- Visual3D.cs
- SafeProcessHandle.cs
- TimersDescriptionAttribute.cs
- XsdBuildProvider.cs
- StackOverflowException.cs
- XPathSelfQuery.cs
- MonthChangedEventArgs.cs
- BitmapImage.cs
- DataSourceControlBuilder.cs
- Literal.cs
- RelationshipEndMember.cs
- WindowsGrip.cs
- ResourcePermissionBase.cs
- DataTableCollection.cs
- xml.cs
- AdCreatedEventArgs.cs
- TheQuery.cs
- EncoderParameters.cs
- RawStylusInputCustomDataList.cs
- SelectedDatesCollection.cs
- DiagnosticEventProvider.cs
- HelpEvent.cs
- ProjectionCamera.cs
- TypeSchema.cs