Frank Dzaebel, erstellt am: 8.8.2006, zuletzt geändert: 13.8.2006
Kategorie: DataGridView, .NET-Version: 2.0, [Download]
Hyperlinks im DataGridView funktional einbinden mit der DataGridViewLinkColumn. Das ist noch recht selten Online zu finden. Hier eine Beispiel-Implementation.
Zunächst wird ein DataSet im DataSet-Designer erstellt. Danach kann der unten stehender Code benutzt werden.
LinkLabel wären zwar auch über das Datenquellen-Fenster mittels Drag&Drop erstellbar,
 |
allerdings werden diese nicht im DataGridView dargestellt, sondern nur, wenn man sie einzeln in die Form zieht. |
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Diagnostics;
namespace DgvHyperlink
{
public partial class Form1 : Form
{
public Form1(){InitializeComponent();}
DataSet1.DatenDataTable dt;
DataGridView dgv;
DataSet1 ds = new DataSet1();
private void Form1_Load(object sender,EventArgs e)
{
dgv = new DataGridView(); dt = ds.Daten;
dgv.Width = 500;
dt.AddDatenRow("Dagobert Duck",true , 1, "http://Dzaebel.NET");
dt.AddDatenRow("Donald Duck" ,false, 3, @"c:\AddIns.doc");
dt.AddDatenRow("Gustav Gans" ,false, 0, "http://www.Google.de");
dt.AddDatenRow("Trick Duck" ,false, 0, "ftp://strato.de");
dgv.DataSource = dt;
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dgv.Location = new Point(15,15); this.Controls.Add(dgv);
dgv.Columns[dt.LinkColumn.Ordinal].Visible = false;
if (!dgv.Columns.Contains(dlc)) AddLinkColumn(dgv);
dgv.CellContentClick += new DataGridViewCellEventHandler(dgv_CellContentClick);
}
void dgv_CellContentClick(object sender,DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == dt.LinkColumn.Ordinal+1)
Process.Start(dgv.CurrentCell.Value.ToString());
}
DataGridViewLinkColumn dlc = new DataGridViewLinkColumn();
private void AddLinkColumn(DataGridView dgv)
{
dlc.HeaderText = "Link";
dlc.DataPropertyName = "Link";
dlc.ActiveLinkColor = Color.White;
dlc.LinkBehavior = LinkBehavior.SystemDefault;
dlc.LinkColor = Color.Blue;
dlc.TrackVisitedState = true;
dlc.VisitedLinkColor = Color.YellowGreen;
dgv.Columns.Add(dlc);
}
}
}