使用DataGridView控件时需要每一行都有一个查看、修改、删除按钮,可以添加按钮列来实现,可是每一列只能有一个按钮,怎么看都不够美观,于是想能不能在单元格把按钮给画上去。
实例下载链接:https://download.youkuaiyun.com/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)