Code:
/ DotNET / DotNET / 8.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
- ServiceContractAttribute.cs
- PageBuildProvider.cs
- InternalConfigHost.cs
- WindowsFormsLinkLabel.cs
- XhtmlBasicPanelAdapter.cs
- ToolboxDataAttribute.cs
- Style.cs
- SecurityElement.cs
- Membership.cs
- OutputCacheProfile.cs
- ColorTransform.cs
- ProtocolsConfigurationHandler.cs
- FastEncoderWindow.cs
- EngineSiteSapi.cs
- LinearKeyFrames.cs
- EncodingStreamWrapper.cs
- ExtendedPropertyDescriptor.cs
- LayoutManager.cs
- FusionWrap.cs
- Trace.cs
- XhtmlTextWriter.cs
- mediapermission.cs
- AppDomainManager.cs
- SchemaInfo.cs
- Emitter.cs
- PropertyChangeTracker.cs
- GenericsNotImplementedException.cs
- LoginUtil.cs
- SessionIDManager.cs
- HotSpot.cs
- DataGridViewTextBoxEditingControl.cs
- TextWriterTraceListener.cs
- ConfigurationErrorsException.cs
- FileDialogCustomPlace.cs
- ComponentChangedEvent.cs
- ViewBox.cs
- NamedPipeAppDomainProtocolHandler.cs
- WebPartHeaderCloseVerb.cs
- HttpConfigurationSystem.cs
- UpdateTracker.cs
- XamlReader.cs
- WizardStepBase.cs
- TypeReference.cs
- SafeNativeMethodsOther.cs
- PackagePart.cs
- WorkflowOwnershipException.cs
- QilScopedVisitor.cs
- SubstitutionResponseElement.cs
- DocobjHost.cs
- ExpressionConverter.cs
- CodeCommentStatementCollection.cs
- DataChangedEventManager.cs
- SecUtil.cs
- SchemaExporter.cs
- NullableIntMinMaxAggregationOperator.cs
- SafePEFileHandle.cs
- WorkflowMarkupSerializationProvider.cs
- Visitors.cs
- CollectionContainer.cs
- CompressStream.cs
- SizeIndependentAnimationStorage.cs
- BitmapEffectvisualstate.cs
- ObjectTokenCategory.cs
- SpellerStatusTable.cs
- counter.cs
- BooleanStorage.cs
- DesignBindingValueUIHandler.cs
- GridViewEditEventArgs.cs
- lengthconverter.cs
- XsltLibrary.cs
- TrustManagerMoreInformation.cs
- WorkflowRuntimeSection.cs
- AuthorizationSection.cs
- CustomGrammar.cs
- SqlInternalConnectionSmi.cs
- UriTemplateHelpers.cs
- IisTraceWebEventProvider.cs
- AffineTransform3D.cs
- SymbolPair.cs
- CorrelationValidator.cs
- EdmScalarPropertyAttribute.cs
- TextElement.cs
- InputProviderSite.cs
- MatrixAnimationUsingKeyFrames.cs
- Point3DKeyFrameCollection.cs
- CaseInsensitiveHashCodeProvider.cs
- TemplateApplicationHelper.cs
- ToolStripGripRenderEventArgs.cs
- XmlSerializableWriter.cs
- DllHostedComPlusServiceHost.cs
- XmlElementList.cs
- OpCodes.cs
- HeaderedContentControl.cs
- Application.cs
- EarlyBoundInfo.cs
- DetailsViewInsertedEventArgs.cs
- SQLInt32.cs
- GridViewRowCollection.cs
- Knowncolors.cs
- SHA1CryptoServiceProvider.cs