2008-12-27 69 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 
    } 
} 
相關問題