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

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

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

使用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)
     
### eMMC KLM4G1FETE-B041CMD3 参数规格 eMMC (Embedded MultiMediaCard) 是一种嵌入式存储解决方案,广泛应用于移动设备和其他电子设备中。对于具体型号 **KLM4G1FETE-B041CMD3** 的参数分析如下: #### 1. 容量与接口标准 该型号属于三星的 eMMC 存储产品线,其容量为 4GB(基于命名中的 “4G” 部分)。此系列通常遵循 JEDEC 标准,支持 eMMC 5.1 协议[^1]。 #### 2. 工作模式支持 根据已知信息以及 eMMC 行业标准: - 支持 HS200 和 HS400 模式下的数据传输。 - 对于 DS(Data Strobe)信号的支持,在 HS400ES 模式下可以实现更高的性能表现。HS400ES 特性允许使用双沿采样技术来提升数据吞吐率。 #### 3. 性能指标 以下是可能涉及的关键性能参数: - **最大理论速度**: 在 HS400 或 HS400ES 下可达约 400 MB/s。 - **引脚定义**: 符合标准 eMMC 接口布局,共 8 引脚设计用于电源、时钟、命令和数据通信。 - **工作电压范围**: VCCQ = 1.7V ~ 3.6V, VCC = 2.7V ~ 3.6V. #### 4. 可靠性和环境适应能力 - 温度等级: 商用级 (-25°C 至 +85°C),适用于大多数消费类电子产品场景。 - ECC 能力: 内置错误校正机制以保障长期使用的稳定性。 ```python # 示例 Python 代码展示如何解析基本 eMMC 设备属性 def parse_emmc_parameters(model_name): capacity_map = {"4G": 4 * 1024} # Convert to MB if model_name.startswith("KLM"): base_info = { "manufacturer": "Samsung", "capacity_mb": capacity_map.get(model_name.split('G')[0][-1], None), "interface_standard": "eMMC 5.1" } return f"{base_info['manufacturer']} {model_name}, Capacity={base_info['capacity_mb']}MB, Standard={base_info['interface_standard']}" print(parse_emmc_parameters("KLM4G1FETE-B041CMD3")) ``` 以上代码片段展示了简单的模型名称解析逻辑,实际应用中需结合更详细的硬件文档完成全面评估。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值