鼠标双击DataGridView单元格变成ComboBox

作用:用户使用鼠标双击DataGridView的单元格时,使单元格变成ComboBox,根据需要也可改成单击事件,使用Listbox等其他控件

变量说明:

dgv:DataGridView
cbb:ComboBox,Visible属性设置为False
cell:DataGridViewCell,窗体成员变量,始终引用用户双击的单元格

代码如下:
    Private Sub dgv_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dgv.MouseDoubleClick
        '使用cbb的值更新用户所选的单元格的值
        If cell IsNot Nothing Then
            cell.Value = cbb.SelectedItem
        End If

        Dim hti As System.Windows.Forms.DataGridView.HitTestInfo
        hti = dgv.HitTest(e.X, e.Y)

        If hti.Type = DataGridViewHitTestType.Cell Then
            cbb.Visible = True
            '调整ComboBox位置以及大小
            Dim ScreenPoint As Point = dgv.PointToScreen(New Point(hti.ColumnX, hti.RowY))
            '转换成工作区坐标
            Dim FormPoint As Point = Me.PointToClient(ScreenPoint)
            cbb.Location = FormPoint
            cell = dgv.Rows(hti.RowIndex).Cells(hti.ColumnIndex)
            cbb.Size = cell.Size

            cbb.SelectedItem = cell.Value
        End If
    End Sub 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值