版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
重新回到《vb.net 教程 3-10 窗体编程 datagridview控件 10 运行时增加按钮列和超链接列 》,当我们增加新的一列按钮或者超链接后,会发现,按钮或者超链接点击后没有反应。那么如果要点击某个按钮弹出一个对话框,或者点击某个超链接,弹出需要的网页,该如何实现呢?
这就需要借助DataGridView.CellContentClick 事件,当单击单元格的内容时会触发该事件。
在《vb.net 教程 3-10 窗体编程 datagridview控件 10 运行时增加按钮列和超链接列》中,代码设置了新增的按钮列名称为“button”,新增的超链接列名称为“Link”。当单击单元格的内容时,需要先通过列Name属性判断是否点击的是我们设置的列,如果是则运行相应的代码。
当然,超链接列并不会点击就跳出网页,而如同LinkLabel控件一样,点击后需要自己设置。
具体代码如下:
Private Sub dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellContentClick
'当点击按钮列时
If dgv.Columns(e.ColumnIndex).Name = "button" Then
MessageBox.Show("点击了第" & (e.RowIndex + 1) & "行的按钮")
End If
'当点击超链接列时
If dgv.Columns(e.ColumnIndex).Name = "Link" Then
Process.Start("http://blog.youkuaiyun.com/uruseibest")
End If
End Sub
当点击按钮时,弹出对话框:
还可以通过typeof这种更为广泛的来判断是哪种单元格:
Private Sub dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellContentClick
If TypeOf dgv(e.ColumnIndex, e.RowIndex) Is DataGridViewButtonCell Then
MessageBox.Show("点击了第" & (e.RowIndex + 1) & "行的按钮")
End If
End Sub
代码判断了点击单元格的类型是否是datagridviewbuttoncell,如果是的话就运行相应的代码。
即使是后来修改为了datagridviewbuttoncell的单元格,也能正常运行。
另外还可以在此基础上判断所在的行、列,做更进一步的细分代码。
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看vb.net 教程 目录