Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewLinkColumn.cs / 1 / DataGridViewLinkColumn.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms
{
using System;
using System.Text;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
using System.Globalization;
///
[ToolboxBitmapAttribute(typeof(DataGridViewLinkColumn), "DataGridViewLinkColumn.bmp")]
public class DataGridViewLinkColumn : DataGridViewColumn
{
private static Type columnType = typeof(DataGridViewLinkColumn);
private string text;
///
public DataGridViewLinkColumn() : base(new DataGridViewLinkCell())
{
}
///
[
SRCategory(SR.CatAppearance),
SRDescription(SR.DataGridView_LinkColumnActiveLinkColorDescr)
]
public Color ActiveLinkColor
{
get
{
if (this.CellTemplate == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired));
}
return ((DataGridViewLinkCell)this.CellTemplate).ActiveLinkColor;
}
set
{
if (!this.ActiveLinkColor.Equals(value))
{
((DataGridViewLinkCell)this.CellTemplate).ActiveLinkColorInternal = value;
if (this.DataGridView != null)
{
DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows;
int rowCount = dataGridViewRows.Count;
for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
DataGridViewLinkCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewLinkCell;
if (dataGridViewCell != null)
{
dataGridViewCell.ActiveLinkColorInternal = value;
}
}
this.DataGridView.InvalidateColumn(this.Index);
}
}
}
}
private bool ShouldSerializeActiveLinkColor()
{
return !this.ActiveLinkColor.Equals(LinkUtilities.IEActiveLinkColor);
}
///
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public override DataGridViewCell CellTemplate
{
get
{
return base.CellTemplate;
}
set
{
if (value != null && !(value is System.Windows.Forms.DataGridViewLinkCell))
{
throw new InvalidCastException(SR.GetString(SR.DataGridViewTypeColumn_WrongCellTemplateType, "System.Windows.Forms.DataGridViewLinkCell"));
}
base.CellTemplate = value;
}
}
///
[
DefaultValue(LinkBehavior.SystemDefault),
SRCategory(SR.CatBehavior),
SRDescription(SR.DataGridView_LinkColumnLinkBehaviorDescr)
]
public LinkBehavior LinkBehavior
{
get
{
if (this.CellTemplate == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired));
}
return ((DataGridViewLinkCell)this.CellTemplate).LinkBehavior;
}
set
{
if (!this.LinkBehavior.Equals(value))
{
((DataGridViewLinkCell)this.CellTemplate).LinkBehavior = value;
if (this.DataGridView != null)
{
DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows;
int rowCount = dataGridViewRows.Count;
for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
DataGridViewLinkCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewLinkCell;
if (dataGridViewCell != null)
{
dataGridViewCell.LinkBehaviorInternal = value;
}
}
this.DataGridView.InvalidateColumn(this.Index);
}
}
}
}
///
[
SRCategory(SR.CatAppearance),
SRDescription(SR.DataGridView_LinkColumnLinkColorDescr)
]
public Color LinkColor
{
get
{
if (this.CellTemplate == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired));
}
return ((DataGridViewLinkCell)this.CellTemplate).LinkColor;
}
set
{
if (!this.LinkColor.Equals(value))
{
((DataGridViewLinkCell)this.CellTemplate).LinkColorInternal = value;
if (this.DataGridView != null)
{
DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows;
int rowCount = dataGridViewRows.Count;
for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
DataGridViewLinkCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewLinkCell;
if (dataGridViewCell != null)
{
dataGridViewCell.LinkColorInternal = value;
}
}
this.DataGridView.InvalidateColumn(this.Index);
}
}
}
}
private bool ShouldSerializeLinkColor()
{
return !this.LinkColor.Equals(LinkUtilities.IELinkColor);
}
///
[
DefaultValue(null),
SRCategory(SR.CatAppearance),
SRDescription(SR.DataGridView_LinkColumnTextDescr)
]
public string Text
{
get
{
return this.text;
}
set
{
if (!string.Equals(value, this.text, StringComparison.Ordinal))
{
this.text = value;
if (this.DataGridView != null)
{
if (this.UseColumnTextForLinkValue)
{
this.DataGridView.OnColumnCommonChange(this.Index);
}
else
{
DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows;
int rowCount = dataGridViewRows.Count;
for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
DataGridViewLinkCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewLinkCell;
if (dataGridViewCell != null && dataGridViewCell.UseColumnTextForLinkValue)
{
this.DataGridView.OnColumnCommonChange(this.Index);
return;
}
}
this.DataGridView.InvalidateColumn(this.Index);
}
}
}
}
}
///
[
DefaultValue(true),
SRCategory(SR.CatBehavior),
SRDescription(SR.DataGridView_LinkColumnTrackVisitedStateDescr)
]
public bool TrackVisitedState
{
get
{
if (this.CellTemplate == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired));
}
return ((DataGridViewLinkCell)this.CellTemplate).TrackVisitedState;
}
set
{
if (this.TrackVisitedState != value)
{
((DataGridViewLinkCell)this.CellTemplate).TrackVisitedStateInternal = value;
if (this.DataGridView != null)
{
DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows;
int rowCount = dataGridViewRows.Count;
for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
DataGridViewLinkCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewLinkCell;
if (dataGridViewCell != null)
{
dataGridViewCell.TrackVisitedStateInternal = value;
}
}
this.DataGridView.InvalidateColumn(this.Index);
}
}
}
}
///
[
DefaultValue(false),
SRCategory(SR.CatAppearance),
SRDescription(SR.DataGridView_LinkColumnUseColumnTextForLinkValueDescr)
]
public bool UseColumnTextForLinkValue
{
get
{
if (this.CellTemplate == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired));
}
return ((DataGridViewLinkCell)this.CellTemplate).UseColumnTextForLinkValue;
}
set
{
if (this.UseColumnTextForLinkValue != value)
{
((DataGridViewLinkCell)this.CellTemplate).UseColumnTextForLinkValueInternal = value;
if (this.DataGridView != null)
{
DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows;
int rowCount = dataGridViewRows.Count;
for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
DataGridViewLinkCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewLinkCell;
if (dataGridViewCell != null)
{
dataGridViewCell.UseColumnTextForLinkValueInternal = value;
}
}
this.DataGridView.OnColumnCommonChange(this.Index);
}
}
}
}
///
[
SRCategory(SR.CatAppearance),
SRDescription(SR.DataGridView_LinkColumnVisitedLinkColorDescr)
]
public Color VisitedLinkColor
{
get
{
if (this.CellTemplate == null)
{
throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired));
}
return ((DataGridViewLinkCell)this.CellTemplate).VisitedLinkColor;
}
set
{
if (!this.VisitedLinkColor.Equals(value))
{
((DataGridViewLinkCell)this.CellTemplate).VisitedLinkColorInternal = value;
if (this.DataGridView != null)
{
DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows;
int rowCount = dataGridViewRows.Count;
for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
{
DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex);
DataGridViewLinkCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewLinkCell;
if (dataGridViewCell != null)
{
dataGridViewCell.VisitedLinkColorInternal = value;
}
}
this.DataGridView.InvalidateColumn(this.Index);
}
}
}
}
private bool ShouldSerializeVisitedLinkColor()
{
return !this.VisitedLinkColor.Equals(LinkUtilities.IEVisitedLinkColor);
}
///
public override object Clone()
{
DataGridViewLinkColumn dataGridViewColumn;
Type thisType = this.GetType();
if (thisType == columnType) //performance improvement
{
dataGridViewColumn = new DataGridViewLinkColumn();
}
else
{
// SECREVIEW : Late-binding does not represent a security threat, see bug#411899 for more info..
//
dataGridViewColumn = (DataGridViewLinkColumn)System.Activator.CreateInstance(thisType);
}
if (dataGridViewColumn != null)
{
base.CloneInternal(dataGridViewColumn);
dataGridViewColumn.Text = this.text;
}
return dataGridViewColumn;
}
///
public override string ToString()
{
StringBuilder sb = new StringBuilder(64);
sb.Append("DataGridViewLinkColumn { Name=");
sb.Append(this.Name);
sb.Append(", Index=");
sb.Append(this.Index.ToString(CultureInfo.CurrentCulture));
sb.Append(" }");
return sb.ToString();
}
}
}
// 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
- TdsValueSetter.cs
- RuntimeCompatibilityAttribute.cs
- BamlRecordHelper.cs
- ExpressionCopier.cs
- XmlSchemaSimpleType.cs
- OdbcConnectionString.cs
- AppDomainAttributes.cs
- SyntaxCheck.cs
- _LoggingObject.cs
- GridViewCellAutomationPeer.cs
- TempFiles.cs
- ProviderMetadataCachedInformation.cs
- BidOverLoads.cs
- XmlObjectSerializerWriteContextComplex.cs
- HealthMonitoringSectionHelper.cs
- CommandDevice.cs
- DetailsViewUpdatedEventArgs.cs
- ImageCollectionEditor.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TriggerCollection.cs
- XmlIgnoreAttribute.cs
- RawStylusInputReport.cs
- X509CertificateEndpointIdentity.cs
- MatcherBuilder.cs
- SpanIndex.cs
- FormViewModeEventArgs.cs
- ScrollPattern.cs
- Int64Animation.cs
- ResourceDescriptionAttribute.cs
- VisualStateManager.cs
- HttpInputStream.cs
- BinaryNode.cs
- RangeBaseAutomationPeer.cs
- XmlCharCheckingWriter.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- Label.cs
- DrawListViewItemEventArgs.cs
- PasswordBox.cs
- Hashtable.cs
- odbcmetadatacolumnnames.cs
- IntMinMaxAggregationOperator.cs
- WebSysDisplayNameAttribute.cs
- PipeStream.cs
- Empty.cs
- InstanceDataCollection.cs
- OrderedDictionaryStateHelper.cs
- TypeViewSchema.cs
- ElementHost.cs
- DefaultClaimSet.cs
- FileDetails.cs
- TextEditorParagraphs.cs
- RemoteWebConfigurationHostStream.cs
- Conditional.cs
- MultiTargetingUtil.cs
- HandlerMappingMemo.cs
- MSAANativeProvider.cs
- SessionStateUtil.cs
- TimeSpan.cs
- ConfigXmlCDataSection.cs
- NativeMethods.cs
- SHA384.cs
- FileVersion.cs
- InitializingNewItemEventArgs.cs
- ActivityTrace.cs
- BitmapMetadata.cs
- WindowsListViewScroll.cs
- StorageBasedPackageProperties.cs
- validation.cs
- SingletonConnectionReader.cs
- WebSysDisplayNameAttribute.cs
- LinkDescriptor.cs
- _HeaderInfo.cs
- ParallelDesigner.cs
- CheckBoxList.cs
- StylusCaptureWithinProperty.cs
- SharedHttpsTransportManager.cs
- TaskFormBase.cs
- TreeViewHitTestInfo.cs
- Method.cs
- TimeoutException.cs
- BadImageFormatException.cs
- WebDisplayNameAttribute.cs
- MouseButton.cs
- DesigntimeLicenseContextSerializer.cs
- LocatorPartList.cs
- SyndicationItemFormatter.cs
- WorkflowNamespace.cs
- HttpHandlerAction.cs
- BuildResultCache.cs
- UseLicense.cs
- DmlSqlGenerator.cs
- SoapCodeExporter.cs
- mediaclock.cs
- SystemIPv4InterfaceProperties.cs
- WmlValidationSummaryAdapter.cs
- AutomationAttributeInfo.cs
- UIElementAutomationPeer.cs
- LocationChangedEventArgs.cs
- MemberDomainMap.cs
- ProcessHostServerConfig.cs