我试图在dgv1上显示dgv2,但正在编辑dgv1的行下面。
我尝试使用此代码
Private Sub Purchases_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles Purchases.CellBeginEdit
Dim Y as integer = 0
For i As Integer = 0 To dgv1.CurrentRow.Index
If dgv1.Rows(i).Index < dgv1.CurrentRow.Index Then
Y = dgv1.Rows.Count * dgv1.Rows(0).Height + dgv1.ColumnHeadersHeight + 12
End If
Next
dgv2.Location = New Point(53, Y)
End Sub
我表现得很好但是当我回到dgv1上的第1行时,它会保持原样。让我说我从第1行开始编辑,然后进入第4行,我想在第1行进行修正,我希望dgv2在第1行下移回。
非常感谢任何帮助。
答案 0 :(得分:0)
刚刚遇到这个并发现使用鼠标y位置(减去表格顶部+ 24)完美无缺。
Private Sub DataGridView1_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEnter
mouseY = Windows.Forms.Cursor.Position.Y - Me.Top + 24
End Sub
答案 1 :(得分:-1)
我删除了if条件并且它完美地运行
这是代码
Try
For i As Integer = 0 To Purchases.CurrentRow.Index
Y = i * Purchases.Rows(0).Height + Purchases.ColumnHeadersHeight + 34
Next
itemlist.Location = New Point(53, Y)
Catch ex As Exception
MsgBox(ex.Message)
End Try