2008-12-27 53 views

回答

4

你需要消耗DataGridView.CellClick事件,只是检查你有正确的列索引。您可以通过以下步骤来做到:

创建一个新的Windows窗体应用程序

将一个DataGridView到屏幕上

在设计时属性,一列添加到您的类型DataGridViewLinkColumn网格

使DataPropertyName属性为“链接”(不含引号)。

在您的形式构造,粘贴此代码的InitializeComponent调用下:

噢,你这样做是在VB.NET,所以这将是:

Dim data As New DataTable() 
data.Columns.Add(New DataColumn("Link", Type.GetType("System.String"))) 
Dim newRow As DataRow = data.NewRow() 
newRow("Link") = "http://www.stackoverflow.com" 
data.Rows.Add(newRow) 
DataGridView1.DataSource = data 

消耗DataGridView.CellClick事件

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick 
    If (e.ColumnIndex = 0) Then 
     Dim link As String = DataGridView1(e.ColumnIndex, e.RowIndex).Value.ToString() 
     System.Diagnostics.Process.Start(link) 
    End If 
End Sub 
1

的GridView绑定时间

LetterB lb = new LetterB(); 
var letter = lb.GetLetter(); 
if (letter != null && letter.Count > 0) 
{ 
    dgvLetter.DataSource = letter; 
    DataGridViewLinkColumn lnkEdit = new DataGridViewLinkColumn(); 

    lnkEdit.UseColumnTextForLinkValue = true; 
    lnkEdit.LinkBehavior = LinkBehavior.SystemDefault; 
    lnkEdit.HeaderText = "Edit"; 
    lnkEdit.Name = "SiteName"; 
    lnkEdit.LinkColor = Color.Blue; 
    lnkEdit.TrackVisitedState = true; 
    lnkEdit.Text = "Edit"; 
    lnkEdit.UseColumnTextForLinkValue = true; 
    dgvLetter.Columns.Add(lnkEdit); 
} 

Click事件

private void dgvLetter_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    var senderGrid = (DataGridView)sender; 

    if (senderGrid.Columns[e.ColumnIndex] is DataGridViewLinkColumn && e.RowIndex >= 0) 
    { 
      //your code 
    } 
} 
相关问题