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
- KnownColorTable.cs
- MdiWindowListItemConverter.cs
- LocalizationParserHooks.cs
- SecurityElement.cs
- ItemsPanelTemplate.cs
- MultiSelector.cs
- LogWriteRestartAreaAsyncResult.cs
- BaseResourcesBuildProvider.cs
- SqlCacheDependencyDatabase.cs
- ReadOnlyDictionary.cs
- WS2007FederationHttpBindingCollectionElement.cs
- SecurityContextTokenValidationException.cs
- MenuEventArgs.cs
- HttpChannelHelpers.cs
- TargetControlTypeCache.cs
- ClientConfigurationHost.cs
- MarkupWriter.cs
- GeneralTransform3DCollection.cs
- XPathDocumentNavigator.cs
- IndicFontClient.cs
- Msec.cs
- AttachedPropertyBrowsableAttribute.cs
- GatewayIPAddressInformationCollection.cs
- TextClipboardData.cs
- UIPermission.cs
- SymbolMethod.cs
- Encoder.cs
- ProjectionRewriter.cs
- SynchronizedInputProviderWrapper.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- XmlUtf8RawTextWriter.cs
- IApplicationTrustManager.cs
- GenericTextProperties.cs
- Vector3DAnimationUsingKeyFrames.cs
- EntityCommand.cs
- DefaultProfileManager.cs
- EtwTrace.cs
- RefreshPropertiesAttribute.cs
- NavigationEventArgs.cs
- TableItemProviderWrapper.cs
- AsynchronousChannelMergeEnumerator.cs
- PageContentCollection.cs
- CommonDialog.cs
- Html32TextWriter.cs
- TableCell.cs
- DockAndAnchorLayout.cs
- UserNamePasswordValidator.cs
- Int32Converter.cs
- TypeValidationEventArgs.cs
- Timeline.cs
- ElapsedEventArgs.cs
- CriticalHandle.cs
- EpmSourceTree.cs
- FontFaceLayoutInfo.cs
- XmlnsDictionary.cs
- DocumentsTrace.cs
- _ServiceNameStore.cs
- OrderedEnumerableRowCollection.cs
- ValidatedControlConverter.cs
- PixelShader.cs
- SmtpCommands.cs
- ToolStripProgressBar.cs
- StdValidatorsAndConverters.cs
- XmlDocument.cs
- DesignerInterfaces.cs
- CodeDirectoryCompiler.cs
- FileDocument.cs
- AsymmetricKeyExchangeDeformatter.cs
- Block.cs
- SelectionItemPattern.cs
- DataGridViewColumnConverter.cs
- ReadContentAsBinaryHelper.cs
- TextOutput.cs
- GridViewAutoFormat.cs
- CrossSiteScriptingValidation.cs
- InputEventArgs.cs
- LinkDescriptor.cs
- PlanCompilerUtil.cs
- BooleanFunctions.cs
- NativeMethods.cs
- streamingZipPartStream.cs
- TextEffect.cs
- ThicknessKeyFrameCollection.cs
- IndexedString.cs
- WebPartConnectionsEventArgs.cs
- SqlCaseSimplifier.cs
- EventLogTraceListener.cs
- Pair.cs
- WizardSideBarListControlItemEventArgs.cs
- RtfNavigator.cs
- XamlStream.cs
- UrlPropertyAttribute.cs
- HttpStreams.cs
- wgx_exports.cs
- InlineCollection.cs
- DoubleAnimationBase.cs
- SafeRegistryKey.cs
- DataSourceSelectArguments.cs
- BulletedListDesigner.cs
- RTTypeWrapper.cs