Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewAdvancedBorderStyle.cs / 1 / DataGridViewAdvancedBorderStyle.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms
{
using System;
using System.Diagnostics;
using System.ComponentModel;
///
public sealed class DataGridViewAdvancedBorderStyle : ICloneable
{
private DataGridView owner;
private bool all = true;
private DataGridViewAdvancedCellBorderStyle banned1, banned2, banned3;
private DataGridViewAdvancedCellBorderStyle top = DataGridViewAdvancedCellBorderStyle.None;
private DataGridViewAdvancedCellBorderStyle left = DataGridViewAdvancedCellBorderStyle.None;
private DataGridViewAdvancedCellBorderStyle right = DataGridViewAdvancedCellBorderStyle.None;
private DataGridViewAdvancedCellBorderStyle bottom = DataGridViewAdvancedCellBorderStyle.None;
///
public DataGridViewAdvancedBorderStyle() : this(null,
DataGridViewAdvancedCellBorderStyle.NotSet,
DataGridViewAdvancedCellBorderStyle.NotSet,
DataGridViewAdvancedCellBorderStyle.NotSet)
{
}
internal DataGridViewAdvancedBorderStyle(DataGridView owner) : this(owner,
DataGridViewAdvancedCellBorderStyle.NotSet,
DataGridViewAdvancedCellBorderStyle.NotSet,
DataGridViewAdvancedCellBorderStyle.NotSet)
{
}
///
/// Creates a new DataGridViewAdvancedBorderStyle. The specified owner will
/// be notified when the values are changed.
///
internal DataGridViewAdvancedBorderStyle(DataGridView owner,
DataGridViewAdvancedCellBorderStyle banned1,
DataGridViewAdvancedCellBorderStyle banned2,
DataGridViewAdvancedCellBorderStyle banned3)
{
this.owner = owner;
this.banned1 = banned1;
this.banned2 = banned2;
this.banned3 = banned3;
}
///
public DataGridViewAdvancedCellBorderStyle All
{
get
{
return this.all ? this.top : DataGridViewAdvancedCellBorderStyle.NotSet;
}
set
{
// Sequential enum. Valid values are 0x0 to 0x7
if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial))
{
throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle));
}
if (value == DataGridViewAdvancedCellBorderStyle.NotSet ||
value == this.banned1 ||
value == this.banned2 ||
value == this.banned3)
{
throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "All"));
}
if (!this.all || this.top != value)
{
this.all = true;
this.top = this.left = this.right = this.bottom = value;
if (this.owner != null)
{
this.owner.OnAdvancedBorderStyleChanged(this);
}
}
}
}
///
public DataGridViewAdvancedCellBorderStyle Bottom
{
get
{
if (this.all)
{
return this.top;
}
return this.bottom;
}
set
{
// Sequential enum. Valid values are 0x0 to 0x7
if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial))
{
throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle));
}
if (value == DataGridViewAdvancedCellBorderStyle.NotSet)
{
throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Bottom"));
}
this.BottomInternal = value;
}
}
internal DataGridViewAdvancedCellBorderStyle BottomInternal
{
set
{
//Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value));
//Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet);
if ((this.all && this.top != value) || (!this.all && this.bottom != value))
{
if (this.all)
{
if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble)
{
this.right = DataGridViewAdvancedCellBorderStyle.Outset;
}
}
this.all = false;
this.bottom = value;
if (this.owner != null)
{
this.owner.OnAdvancedBorderStyleChanged(this);
}
}
}
}
///
public DataGridViewAdvancedCellBorderStyle Left
{
get
{
if (this.all)
{
return this.top;
}
return this.left;
}
set
{
// Sequential enum. Valid values are 0x0 to 0x7
if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial))
{
throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle));
}
if (value == DataGridViewAdvancedCellBorderStyle.NotSet)
{
throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Left"));
}
this.LeftInternal = value;
}
}
internal DataGridViewAdvancedCellBorderStyle LeftInternal
{
set
{
//Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value));
//Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet);
if ((this.all && this.top != value) || (!this.all && this.left != value))
{
if ((this.owner != null && this.owner.RightToLeftInternal) &&
(value == DataGridViewAdvancedCellBorderStyle.InsetDouble || value == DataGridViewAdvancedCellBorderStyle.OutsetDouble))
{
throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Left"));
}
if (this.all)
{
if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble)
{
this.right = DataGridViewAdvancedCellBorderStyle.Outset;
}
if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble)
{
this.bottom = DataGridViewAdvancedCellBorderStyle.Outset;
}
}
this.all = false;
this.left = value;
if (this.owner != null)
{
this.owner.OnAdvancedBorderStyleChanged(this);
}
}
}
}
///
public DataGridViewAdvancedCellBorderStyle Right
{
get
{
if (this.all)
{
return this.top;
}
return this.right;
}
set
{
// Sequential enum. Valid values are 0x0 to 0x7
if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial))
{
throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle));
}
if (value == DataGridViewAdvancedCellBorderStyle.NotSet)
{
throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Right"));
}
this.RightInternal = value;
}
}
internal DataGridViewAdvancedCellBorderStyle RightInternal
{
set
{
//Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value));
//Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet);
if ((this.all && this.top != value) || (!this.all && this.right != value))
{
if ((this.owner != null && !this.owner.RightToLeftInternal) &&
(value == DataGridViewAdvancedCellBorderStyle.InsetDouble || value == DataGridViewAdvancedCellBorderStyle.OutsetDouble))
{
throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Right"));
}
if (this.all)
{
if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble)
{
this.bottom = DataGridViewAdvancedCellBorderStyle.Outset;
}
}
this.all = false;
this.right = value;
if (this.owner != null)
{
this.owner.OnAdvancedBorderStyleChanged(this);
}
}
}
}
///
public DataGridViewAdvancedCellBorderStyle Top
{
get
{
return this.top;
}
set
{
// Sequential enum. Valid values are 0x0 to 0x7
if (!ClientUtils.IsEnumValid(value, (int)value, (int)DataGridViewAdvancedCellBorderStyle.NotSet, (int)DataGridViewAdvancedCellBorderStyle.OutsetPartial))
{
throw new InvalidEnumArgumentException("value", (int)value, typeof(DataGridViewAdvancedCellBorderStyle));
}
if (value == DataGridViewAdvancedCellBorderStyle.NotSet)
{
throw new ArgumentException(SR.GetString(SR.DataGridView_AdvancedCellBorderStyleInvalid, "Top"));
}
this.TopInternal = value;
}
}
internal DataGridViewAdvancedCellBorderStyle TopInternal
{
set
{
//Debug.Assert(Enum.IsDefined(typeof(DataGridViewAdvancedCellBorderStyle), value));
//Debug.Assert(value != DataGridViewAdvancedCellBorderStyle.NotSet);
if ((this.all && this.top != value) || (!this.all && this.top != value))
{
if (this.all)
{
if (this.right == DataGridViewAdvancedCellBorderStyle.OutsetDouble)
{
this.right = DataGridViewAdvancedCellBorderStyle.Outset;
}
if (this.bottom == DataGridViewAdvancedCellBorderStyle.OutsetDouble)
{
this.bottom = DataGridViewAdvancedCellBorderStyle.Outset;
}
}
this.all = false;
this.top = value;
if (this.owner != null)
{
this.owner.OnAdvancedBorderStyleChanged(this);
}
}
}
}
///
///
public override bool Equals(object other)
{
DataGridViewAdvancedBorderStyle dgvabsOther = other as DataGridViewAdvancedBorderStyle;
if (dgvabsOther == null)
{
return false;
}
return dgvabsOther.all == this.all &&
dgvabsOther.top == this.top &&
dgvabsOther.left == this.left &&
dgvabsOther.bottom == this.bottom &&
dgvabsOther.right == this.right;
}
///
///
public override int GetHashCode()
{
return WindowsFormsUtils.GetCombinedHashCodes((int) this.top,
(int) this.left,
(int) this.bottom,
(int) this.right);
}
///
///
public override string ToString()
{
return "DataGridViewAdvancedBorderStyle { All=" + this.All.ToString() + ", Left=" + this.Left.ToString() + ", Right=" + this.Right.ToString() + ", Top=" + this.Top.ToString() + ", Bottom=" + this.Bottom.ToString() + " }";
}
///
///
object ICloneable.Clone()
{
DataGridViewAdvancedBorderStyle dgvabs = new DataGridViewAdvancedBorderStyle(this.owner, this.banned1, this.banned2, this.banned3);
dgvabs.all = this.all;
dgvabs.top = this.top;
dgvabs.right = this.right;
dgvabs.bottom = this.bottom;
dgvabs.left = this.left;
return dgvabs;
}
}
}
// 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
- MaskInputRejectedEventArgs.cs
- StylusPlugin.cs
- ConversionContext.cs
- Scheduling.cs
- SelectionList.cs
- ViewEvent.cs
- _SslState.cs
- SharedPersonalizationStateInfo.cs
- _PooledStream.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- FormViewPageEventArgs.cs
- TextRunCache.cs
- FixedTextView.cs
- exports.cs
- TypeHelper.cs
- SoapFault.cs
- PageCatalogPart.cs
- BinHexEncoder.cs
- UdpReplyToBehavior.cs
- XamlFrame.cs
- WindowsFormsLinkLabel.cs
- WorkflowViewManager.cs
- WorkflowRuntimeElement.cs
- GlyphCache.cs
- ResourceIDHelper.cs
- WebHttpBinding.cs
- SiteMapNodeCollection.cs
- XmlKeywords.cs
- AstTree.cs
- HostingPreferredMapPath.cs
- DoubleCollectionConverter.cs
- ProcessProtocolHandler.cs
- SystemPens.cs
- CombinedGeometry.cs
- VirtualPathUtility.cs
- PrintPreviewDialog.cs
- TransformValueSerializer.cs
- EncodingTable.cs
- CommandID.cs
- ViewgenContext.cs
- ErrorStyle.cs
- InstanceLockException.cs
- XmlDataImplementation.cs
- MobileControlPersister.cs
- LogConverter.cs
- rsa.cs
- EventEntry.cs
- ConfigurationErrorsException.cs
- METAHEADER.cs
- TabItemAutomationPeer.cs
- NodeLabelEditEvent.cs
- SizeIndependentAnimationStorage.cs
- WebConfigurationFileMap.cs
- ProfileManager.cs
- MetadataItem_Static.cs
- CaseStatement.cs
- Merger.cs
- CreateParams.cs
- DBDataPermission.cs
- StyleConverter.cs
- MessageBox.cs
- Rect3DConverter.cs
- SqlInternalConnection.cs
- XPathDocument.cs
- RootProfilePropertySettingsCollection.cs
- MetadataArtifactLoaderCompositeResource.cs
- RegexCharClass.cs
- Misc.cs
- PrintController.cs
- ScaleTransform3D.cs
- InstanceKeyCompleteException.cs
- TreeNode.cs
- XslVisitor.cs
- RemotingAttributes.cs
- SafeEventLogWriteHandle.cs
- ToolStripProgressBar.cs
- RewritingPass.cs
- XDeferredAxisSource.cs
- MetadataItem.cs
- MembershipPasswordException.cs
- DefaultTextStoreTextComposition.cs
- ActivationArguments.cs
- DependencyObjectPropertyDescriptor.cs
- WindowsToolbarItemAsMenuItem.cs
- TemplateContent.cs
- CryptoHelper.cs
- TableRowGroup.cs
- TdsParserSafeHandles.cs
- IndicFontClient.cs
- InputBinding.cs
- CapabilitiesUse.cs
- FilteredXmlReader.cs
- Axis.cs
- ChtmlTextBoxAdapter.cs
- SelectionHighlightInfo.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- InvalidCastException.cs
- XmlAttributeAttribute.cs
- PropertyRecord.cs
- EventRoute.cs