Private Sub DtgMain_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DtgMain.CurrentCellChanged
If DtgMain.CurrentCell.RowNumber = dsMdb.Tables(0).Rows.Count Then
DtgMain.CurrentCell = New DataGridCell(dsMdb.Tables(0).Rows.Count - 1, 0)
End If
End Sub
想不让用户拖动改变列宽,你可以重写一个datagrid,重写他的onmousedown和onmousemove事件,判断该点击事件的目的是否为改变列宽,如果是的话,不做任何处理退出。代码如下:
Public Class newDataGrid
Inherits DataGrid
Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
Dim hti As DataGrid.HitTestInfo = Me.HitTest(New Point(e.X, e.Y))
'如果鼠标事件类型为改变列宽则返回
If hti.Type = DataGrid.HitTestType.ColumnResize Then
Return 'no baseclass call
End If
MyBase.OnMouseMove(e)
End Sub
Protected Overrides Sub onmousedown(ByVal e As System.Windows.Forms.MouseEventArgs)
Dim hti As DataGrid.HitTestInfo = Me.HitTest(New Point(e.X, e.Y))
If hti.Type = DataGrid.HitTestType.ColumnResize Then
Return
End If
Try
MyBase.OnMouseDown(e)
Catch ex As System.NullReferenceException
Exit Sub
End Try
End Sub