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
- EventLogPermissionAttribute.cs
- SmiRecordBuffer.cs
- FontFamilyConverter.cs
- PenThread.cs
- AutomationPropertyInfo.cs
- IndexedDataBuffer.cs
- MachineKeySection.cs
- IUnknownConstantAttribute.cs
- ProcessModule.cs
- FtpRequestCacheValidator.cs
- DataKeyArray.cs
- Size3D.cs
- ComplexBindingPropertiesAttribute.cs
- DeploymentExceptionMapper.cs
- FixUp.cs
- BitmapEffectDrawingContent.cs
- UnicastIPAddressInformationCollection.cs
- HtmlSelect.cs
- PackageRelationshipSelector.cs
- KeyToListMap.cs
- ComponentGuaranteesAttribute.cs
- EmptyReadOnlyDictionaryInternal.cs
- HttpCapabilitiesEvaluator.cs
- CodeIndexerExpression.cs
- HighlightVisual.cs
- DateTimeUtil.cs
- StringFreezingAttribute.cs
- StackOverflowException.cs
- BlockCollection.cs
- CodePropertyReferenceExpression.cs
- HtmlControl.cs
- MessageBox.cs
- XmlSchemaValidationException.cs
- ManifestResourceInfo.cs
- ListViewItemEventArgs.cs
- DBSchemaTable.cs
- SchemaNotation.cs
- TargetException.cs
- SafeThreadHandle.cs
- UnsafeNativeMethods.cs
- ControlTemplate.cs
- KeyEvent.cs
- EDesignUtil.cs
- TerminatorSinks.cs
- WindowsIPAddress.cs
- CapabilitiesAssignment.cs
- Vector3DKeyFrameCollection.cs
- While.cs
- DataServiceResponse.cs
- RegionIterator.cs
- InkPresenterAutomationPeer.cs
- Style.cs
- AdapterDictionary.cs
- ReadOnlyHierarchicalDataSource.cs
- Int16Animation.cs
- BitArray.cs
- TypeBuilder.cs
- KeyMatchBuilder.cs
- InstanceView.cs
- WebHttpBehavior.cs
- PolicyManager.cs
- SHA1Managed.cs
- TracingConnection.cs
- DrawingImage.cs
- DataGridViewComboBoxEditingControl.cs
- ToolStripButton.cs
- EmulateRecognizeCompletedEventArgs.cs
- TextServicesProperty.cs
- HttpListenerContext.cs
- Number.cs
- ValidationErrorCollection.cs
- AppSettingsReader.cs
- PtsCache.cs
- ElementNotEnabledException.cs
- XmlSchemaGroup.cs
- AttachedPropertyBrowsableAttribute.cs
- StaticTextPointer.cs
- Matrix3DConverter.cs
- ListItemCollection.cs
- ItemType.cs
- EntityDataSourceContextCreatedEventArgs.cs
- TracingConnectionListener.cs
- Misc.cs
- ClosableStream.cs
- UserControlParser.cs
- TemplateBuilder.cs
- ApplicationSecurityInfo.cs
- ElementFactory.cs
- CompressedStack.cs
- EntityDataSourceQueryBuilder.cs
- LinqDataSourceSelectEventArgs.cs
- PageVisual.cs
- ConfigurationStrings.cs
- IntSecurity.cs
- HttpListenerRequestTraceRecord.cs
- CodeNamespace.cs
- SqlUDTStorage.cs
- EntityClassGenerator.cs
- LinkLabel.cs
- Route.cs