Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- RemoteWebConfigurationHost.cs
- IisTraceWebEventProvider.cs
- WorkflowMarkupSerializer.cs
- MbpInfo.cs
- StateChangeEvent.cs
- DataGridViewDataErrorEventArgs.cs
- SqlParameterizer.cs
- DependencyPropertyDescriptor.cs
- StringSource.cs
- CodeDirectoryCompiler.cs
- XmlNodeChangedEventArgs.cs
- PasswordRecovery.cs
- VisualStyleRenderer.cs
- DataServiceRequestException.cs
- GraphicsContext.cs
- ServiceHandle.cs
- SafeArrayRankMismatchException.cs
- TextTreeObjectNode.cs
- NetworkStream.cs
- ReadonlyMessageFilter.cs
- WebBrowserHelper.cs
- NonBatchDirectoryCompiler.cs
- DataGridViewCellCollection.cs
- ValidatorAttribute.cs
- embossbitmapeffect.cs
- COM2Properties.cs
- InputElement.cs
- PreProcessor.cs
- InputBuffer.cs
- IntPtr.cs
- ToolBarPanel.cs
- MexNamedPipeBindingElement.cs
- UIElementParagraph.cs
- WpfXamlLoader.cs
- RowSpanVector.cs
- hwndwrapper.cs
- ListComponentEditorPage.cs
- SchemaImporter.cs
- CultureInfo.cs
- TextTreeObjectNode.cs
- ProcessHostConfigUtils.cs
- WorkItem.cs
- Events.cs
- GregorianCalendar.cs
- DataSvcMapFileSerializer.cs
- PaperSize.cs
- input.cs
- PrintPageEvent.cs
- DataGridDetailsPresenter.cs
- ArraySortHelper.cs
- ModelPropertyImpl.cs
- DbDataSourceEnumerator.cs
- ProviderException.cs
- TextProviderWrapper.cs
- WindowsUpDown.cs
- WebScriptMetadataMessageEncoderFactory.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- UriTemplateMatch.cs
- SemanticBasicElement.cs
- DecimalAnimation.cs
- InputMethodStateTypeInfo.cs
- DataGridColumnDropSeparator.cs
- Trigger.cs
- TreeNodeSelectionProcessor.cs
- SqlParameter.cs
- TransportContext.cs
- JoinSymbol.cs
- EqualityComparer.cs
- SystemBrushes.cs
- EditorAttribute.cs
- FontSizeConverter.cs
- TreeBuilderBamlTranslator.cs
- Membership.cs
- ToolStripLocationCancelEventArgs.cs
- DataGridViewButtonCell.cs
- StackSpiller.Bindings.cs
- BaseDataListPage.cs
- IPEndPoint.cs
- OraclePermissionAttribute.cs
- TextEditor.cs
- HttpApplicationFactory.cs
- SafeFileMapViewHandle.cs
- IconBitmapDecoder.cs
- SqlDataSourceFilteringEventArgs.cs
- WSDualHttpSecurityElement.cs
- InstanceDataCollection.cs
- PublisherMembershipCondition.cs
- StringOutput.cs
- DataGridPagerStyle.cs
- StructuredTypeEmitter.cs
- FontClient.cs
- ChtmlPhoneCallAdapter.cs
- PolicyLevel.cs
- ListenerTraceUtility.cs
- EndpointFilterProvider.cs
- AuthenticationService.cs
- ControlPersister.cs
- SessionState.cs
- RenderDataDrawingContext.cs
- assertwrapper.cs