, 04:28 PM
PHP كود :
' ======= الحدث الأول: الرقم التلقائي =======
Private Sub dgv_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellEnter
If e.ColumnIndex = 0 AndAlso e.RowIndex > 0 Then
Dim currentRow As DataGridViewRow = dgv.Rows(e.RowIndex)
Dim previousRow As DataGridViewRow = dgv.Rows(e.RowIndex - 1)
If IsDBNull(currentRow.Cells("Col_From").Value) OrElse
String.IsNullOrWhiteSpace(currentRow.Cells("Col_From").Value?.ToString()) Then
Dim prevToValue As String = previousRow.Cells("Col_To").Value?.ToString()
If Not String.IsNullOrWhiteSpace(prevToValue) Then
Dim prevTo As Integer
If Integer.TryParse(prevToValue, prevTo) Then
currentRow.Cells("Col_From").Value = prevTo + 1
End If
End If
End If
End If
End Sub
' ======= الحدث الثاني: منع الانتقال قبل التعبئة =======
Private Sub dgv_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles dgv.CellValidating
If e.RowIndex = dgv.NewRowIndex Then Exit Sub
If String.IsNullOrWhiteSpace(e.FormattedValue?.ToString()) Then
e.Cancel = True
MessageBox.Show("لا يمكن الانتقال قبل تعبئة هذه الخلية!", "تنبيه",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub


![[صورة مرفقة: 177461173141861.gif]](https://up6.cc/2026/03/177461173141861.gif)