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
- SByte.cs
- StyleBamlRecordReader.cs
- SchemaEntity.cs
- _ScatterGatherBuffers.cs
- DecoderReplacementFallback.cs
- ObjectDataSourceFilteringEventArgs.cs
- CapabilitiesUse.cs
- WhileDesigner.cs
- XmlHierarchicalEnumerable.cs
- WsatServiceAddress.cs
- DataSourceCacheDurationConverter.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ClickablePoint.cs
- BaseProcessProtocolHandler.cs
- StructuralObject.cs
- MaskInputRejectedEventArgs.cs
- EntityDataSourceWrapper.cs
- SmtpLoginAuthenticationModule.cs
- DbCommandDefinition.cs
- HostProtectionException.cs
- ServiceTimeoutsBehavior.cs
- DesignerActionPanel.cs
- ControlFilterExpression.cs
- Scripts.cs
- SafeLibraryHandle.cs
- TextEditorCharacters.cs
- TextRangeProviderWrapper.cs
- WebPartChrome.cs
- NativeMethods.cs
- SubpageParaClient.cs
- RepeaterItemCollection.cs
- GregorianCalendarHelper.cs
- XmlDocument.cs
- CharacterBufferReference.cs
- XmlAtomicValue.cs
- BooleanAnimationUsingKeyFrames.cs
- HttpCachePolicyElement.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- ProviderException.cs
- WorkflowRuntimeEndpoint.cs
- MemberDomainMap.cs
- PermissionAttributes.cs
- DataListItemEventArgs.cs
- EditorZoneBase.cs
- MarkedHighlightComponent.cs
- InstallerTypeAttribute.cs
- DelegatingMessage.cs
- PointKeyFrameCollection.cs
- SoapElementAttribute.cs
- NetworkInformationException.cs
- TcpClientSocketManager.cs
- XmlQueryOutput.cs
- EntitySetDataBindingList.cs
- StringFunctions.cs
- CodeTypeOfExpression.cs
- ManipulationStartedEventArgs.cs
- DelegateTypeInfo.cs
- MenuCommandService.cs
- HtmlElementCollection.cs
- RecognizerStateChangedEventArgs.cs
- WebPartEditorCancelVerb.cs
- UIElement.cs
- AttributeEmitter.cs
- FloaterBaseParagraph.cs
- ClientSettingsProvider.cs
- ScrollChrome.cs
- xmlsaver.cs
- EncoderParameter.cs
- XmlSchemaImporter.cs
- TableRowGroup.cs
- AppDomainInfo.cs
- DateTimeOffset.cs
- OracleMonthSpan.cs
- SoapClientMessage.cs
- PeerEndPoint.cs
- CfgArc.cs
- IndentTextWriter.cs
- SourceChangedEventArgs.cs
- XmlQueryType.cs
- LocatorBase.cs
- OrthographicCamera.cs
- GlobalItem.cs
- OletxVolatileEnlistment.cs
- LineServices.cs
- XmlWhitespace.cs
- SiteMapNodeItemEventArgs.cs
- TextRenderer.cs
- RangeValidator.cs
- RootContext.cs
- IPGlobalProperties.cs
- SimpleLine.cs
- List.cs
- SqlUtils.cs
- ConfigurationValidatorAttribute.cs
- FormViewModeEventArgs.cs
- DbConnectionPoolIdentity.cs
- NetworkStream.cs
- FormatSettings.cs
- LicenseManager.cs
- CodeNamespaceImport.cs