Code:
/ DotNET / DotNET / 8.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
- SqlParameterCollection.cs
- UriWriter.cs
- GeometryHitTestResult.cs
- DefaultCommandConverter.cs
- SamlConditions.cs
- QilList.cs
- DetailsViewRowCollection.cs
- XamlUtilities.cs
- TextRunCache.cs
- DesignerActionListCollection.cs
- SafeMemoryMappedViewHandle.cs
- StringSource.cs
- SecurityPermission.cs
- Context.cs
- TableLayout.cs
- RawStylusSystemGestureInputReport.cs
- CardSpaceShim.cs
- SiteMapNodeItem.cs
- IndexOutOfRangeException.cs
- DataError.cs
- FontClient.cs
- UserNameSecurityTokenProvider.cs
- InstanceContextManager.cs
- ColumnClickEvent.cs
- ParentQuery.cs
- FormViewPageEventArgs.cs
- PropertyGroupDescription.cs
- SymbolMethod.cs
- XmlComment.cs
- Image.cs
- MemoryMappedFile.cs
- Asn1IntegerConverter.cs
- DataProtection.cs
- KerberosRequestorSecurityToken.cs
- CodeConditionStatement.cs
- NetMsmqSecurityElement.cs
- PointConverter.cs
- ResourceContainer.cs
- ActivityBuilderHelper.cs
- WorkflowOperationContext.cs
- QilValidationVisitor.cs
- ConsoleEntryPoint.cs
- IsolationInterop.cs
- UrlMapping.cs
- DemultiplexingClientMessageFormatter.cs
- HandlerFactoryWrapper.cs
- CustomAttribute.cs
- TokenFactoryCredential.cs
- RouteItem.cs
- SynchronousChannel.cs
- DataShape.cs
- ContractHandle.cs
- cookie.cs
- ButtonBaseDesigner.cs
- ArithmeticException.cs
- Walker.cs
- BindingOperations.cs
- PrivilegeNotHeldException.cs
- FrameDimension.cs
- ETagAttribute.cs
- ListViewItemMouseHoverEvent.cs
- WindowPattern.cs
- MultilineStringEditor.cs
- ConnectorSelectionGlyph.cs
- AssemblyCache.cs
- KerberosRequestorSecurityToken.cs
- RangeBaseAutomationPeer.cs
- Literal.cs
- NativeMethods.cs
- ProtectedProviderSettings.cs
- RMPublishingDialog.cs
- WindowsFormsHostPropertyMap.cs
- StructuralComparisons.cs
- HitTestParameters.cs
- GridViewColumnCollectionChangedEventArgs.cs
- TextBoxRenderer.cs
- HtmlValidationSummaryAdapter.cs
- ExpressionSelection.cs
- HostExecutionContextManager.cs
- ControlSerializer.cs
- ObservableCollection.cs
- InkCanvasSelectionAdorner.cs
- UnicodeEncoding.cs
- QuestionEventArgs.cs
- RawContentTypeMapper.cs
- CloseSequenceResponse.cs
- TypeUtil.cs
- SymbolTable.cs
- ColorConvertedBitmap.cs
- ExceptionUtil.cs
- StylusPlugin.cs
- ApplicationFileParser.cs
- ActivityMarkupSerializationProvider.cs
- HtmlInputReset.cs
- xmlsaver.cs
- DependencyStoreSurrogate.cs
- EmbeddedMailObject.cs
- SerializationStore.cs
- Keyboard.cs
- XsltContext.cs