VB.NET学习笔记:winForm扩展DataGridView控件实现一列多操作(如查看详情、修改、删除等)按钮

这篇博客介绍了如何在VB.NET中扩展winForm的DataGridView控件,以实现每行包含多个操作按钮(查看、修改、删除等),并通过自定义绘制单元格内的按钮提高美观性。提供了实例下载链接和最终实现效果的截图,以及关键代码片段。

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

使用DataGridView控件时需要每一行都有一个查看、修改、删除按钮,可以添加按钮列来实现,可是每一列只能有一个按钮,怎么看都不够美观,于是想能不能在单元格把按钮给画上去。
实例下载链接:https://download.csdn.net/download/zyjq52uys/12456524
效果图如下:
一列多操作按钮
在这里插入图片描述
在这里插入图片描述

直接上代码:
DataGridViewEx:

Public Class DataGridViewEx
    Inherits DataGridView
        ''' <summary>
    ''' 修改按钮点击事件
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    <Category("自定义事件"), Description("修改按钮点击事件")>
    Public Event CellButtonModifyClicked(ByVal sender As Object, ByVal e As EventArgsEx.DataGridViewClickEventArgsEx)
    ''' <summary>
    ''' 删除按钮点击事件
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    <Category("自定义事件"), Description("删除按钮点击事件")>
    Public Event CellButtonDeleteClicked(ByVal sender As Object, ByVal e As EventArgsEx.DataGridViewClickEventArgsEx)
#Region "按钮事件"
    ''' <summary>
    ''' 引发CellButtonModifyClicked事件
    ''' </summary>
    ''' <param name="columnIndex"></param>
    ''' <param name="rowIndex"></param>
    ''' <param name="value"></param>
    Friend Sub OnCellButtonModifyClicked(ByVal columnIndex As Integer, ByVal rowIndex As Integer, ByVal value As Object)
        RaiseEvent CellButtonModifyClicked(Me, New EventArgsEx.DataGridViewClickEventArgsEx(columnIndex, rowIndex, value))
    End Sub
    ''' <summary>
    ''' 引发CellButtonDeleteClicked事件
    ''' </summary>
    ''' <param name="columnIndex"></param>
    ''' <param name="rowIndex"></param>
    ''' <param name="value"></param>
    Friend Sub OnCellButtonDeleteClicked(ByVal columnIndex As Integer, ByVal rowIndex As Integer, ByVal value As Object)
        RaiseEvent CellButtonDeleteClicked(Me, New EventArgsEx.DataGridViewClickEventArgsEx(columnIndex, rowIndex, value))
    End Sub
#End Region
End Class

DataGridViewButtonColumnEx:

Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Windows.Forms
Imports System.Drawing
Imports System.ComponentModel
Imports System.Windows.Forms.VisualStyles

    Public Class DataGridViewButtonColumnEx
        Inherits DataGridViewColumn

        Shared DefaultButtonSize As Size = New Size(35, 24)
        Private _ButtonSize As Size = DefaultButtonSize
        ''' <summary>
        ''' 按钮大小模板Size
        ''' </summary>
        ''' <returns></returns>
        <Category("zyjq"), Browsable(True), Localizable(True), Description("按钮大小模板。")>
        Public Property ButtonSize As Size
            Get
                Return _ButtonSize
            End Get
            Set(ByVal value As Size)
     
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值