سلام
به شکل زیر عمل کن ، انشااله که حل میشه
این کد ها رو قبل و بعد از کد ویرایش و لود کردن دوباره اطلاعات توی دیتا گرید بنویس (من تو قالب یه متد نوشتم ، شما هرجا که کدت رو نوشتی اینا رو اضافه کن)
Private Sub EditData()
Dim SaveRow As Integer = 0
Dim Current As Integer = 0
If Dgv1.Rows.Count > 0 Then
SaveRow = Dgv1.FirstDisplayedCell.RowIndex
Current = Dgv1.CurrentRow.Index
End If
'
'
' عملیات ویرایش و نمایش پیام موفقیت
'
' لود مجدد اطلاعات در دیتاگرید
'
'
If (SaveRow < Dgv1.Rows.Count) Then
Dgv1.FirstDisplayedScrollingRowIndex = SaveRow
Dgv1.CurrentCell = Dgv1.Item(0, Current)
Dgv1.Rows(Current).Selected = True
End If
End Sub
این متد رو هم که قبلا داشتی ، با تغییراتی البته (حتما بجای بلوک Try.. Catch این IF که نوشتمو بنویس)
Private Sub FillForm()
If Not (Dgv1.CurrentRow Is Nothing) Then
Label1.Text = Dgv1.CurrentRow.Cells(0).Value.ToString
txttell.Text = Dgv1.CurrentRow.Cells(3).Value.ToString
txtname.Text = Dgv1.CurrentRow.Cells(1).Value.ToString
HM_FarsiCalendar1.Text = Dgv1.CurrentRow.Cells(6).Value.ToString
txtprice.Text = Dgv1.CurrentRow.Cells(8).Value.ToString
txttime.Text = Dgv1.CurrentRow.Cells(5).Value.ToString
txttozihat.Text = Dgv1.CurrentRow.Cells(7).Value.ToString
End If
End Sub
حالا تو رویداد CurrentCellChanged دیتاگرید ، متد FillForm رو فراخوانی کن و تمام.
Private Sub Dgv1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Dgv1.CurrentCellChanged
FillForm()
End Sub
موفق باشید.