Событие нажатия кнопки ссылки Gridview - приложение для Windows - PullRequest
2 голосов
/ 27 декабря 2008

Как обрабатывать событие нажатия кнопки ссылки в gridview в vb.net (приложение для Windows)

Спасибо

Ответы [ 2 ]

4 голосов
/ 27 декабря 2008

Вам нужно использовать событие DataGridView.CellClick и просто проверить, что вы получили правильный индекс столбца. Вы можете сделать это с помощью следующих шагов:

Создание нового приложения Windows Forms

Перетащите 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 голос
/ 21 марта 2017

Время привязки 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);
}

Событие клика

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

     if (senderGrid.Columns[e.ColumnIndex] is DataGridViewLinkColumn && e.RowIndex >= 0)
     { 
          //your code
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...