vb.net 教程 3-10 窗体编程 datagridview控件 13 解决单元格按钮或超链接点击的问题

博客围绕vb.net中datagridview控件展开,介绍在运行时增加按钮列和超链接列后,点击无反应的解决办法。借助DataGridView.CellContentClick事件,通过列Name属性判断点击列,运行相应代码。还可通过typeof判断单元格类型,也能进一步细分行、列代码,对C#爱好者也有参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

重新回到《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 教程 目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Net学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值