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