关于datagridview的一些操作

1.获取datagridview的当前单元格的行号列号      

    Private Sub dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellClick
        RCount = dgv.CurrentCell.RowIndex
        Ccount = dgv.CurrentCell.ColumnIndex
    End Sub

2.获取datagridview的当前选定行的行号  

    Private Sub dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellClick
        RCount = dgv.CurrentRow.Index
    End Sub

3.datagridview 内容居中

  For i = 0 To dgv.ColumnCount - 1                 
    datagridview.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter  
  Next

4.datagridview 行居中   

datagridview.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

5.取消datagridview的列排续 

 For Idx = 0 To dgv.ColumnCount - 1
    dgv.Columns(Idx).SortMode = DataGridViewColumnSortMode.NotSortable
 Next

6.datagridview显示行号 

    Private Sub dgv_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles dgv.CellPainting
        '列ヘッダーかどうか調べる
        If e.ColumnIndex < 0 And e.RowIndex >= 0 Then
            'セルを描画する
            e.Paint(e.ClipBounds, DataGridViewPaintParts.All)
            '行番号を描画する範囲を決定する
            'e.AdvancedBorderStyleやe.CellStyle.Paddingは無視しています 
            Dim indexRect As Rectangle = e.CellBounds
            indexRect.Inflate(-2, -2)
            '行番号を描画する 
            TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), e.CellStyle.Font, indexRect, e.CellStyle.ForeColor, TextFormatFlags.Right Or TextFormatFlags.VerticalCenter)
            '描画が完了したことを知らせる
            e.Handled = True
        End If
    End Sub

7.规定输入值的范围并获取内容  

    Private Sub dgv_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles dgv.CellValidating
        Try
            With Me.dgv
                If CInt(e.FormattedValue) < 1 Or CInt(e.FormattedValue) > 9 Then
                    Dim MyError As String = "取值范围1~9"
                    .Rows(e.RowIndex).ErrorText = MyError
                    e.Cancel = True
                End If
                x = e.RowIndex
                y = e.ColumnIndex
                f(x, y) = CInt(e.FormattedValue)
            End With
        Catch ex As Exception
        End Try
    End Sub

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值