المطلوب : عند الضغط على مفتاح entree في التكست بوكس ينتقل التحديد في الداتا غريد فيو الى السطر الذي بعده ، استعملت هذا الكود لكن به خطأ ، هل من الممكن كود آخر بارك الله فيكم .
كود :
Private Sub txt3_KeyDown(sender As Object, e As KeyEventArgs) Handles txt3.KeyDown
Dim row As Integer
If e.KeyCode = Keys.Enter Then
row += 1
Dgv1.CurrentCell = Dgv1.Rows(row).Cells(0)
Else
If row = Dgv1.Rows.Count - 1 Then
MessageBox.Show("انتهى حجز نقاط القسم", "تأكيد", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
End If
End Sub
(07-12-19, 11:33 PM)محمد كريّم كتب : [ -> ]
كود :
Private Sub txt3_KeyDown(sender As Object, e As KeyEventArgs) Handles txt3.KeyDown
If e.KeyData = Keys.Enter Then
If Dgv1.CurrentCell IsNot Nothing Then
Dim row As Integer = Dgv1.CurrentCell.RowIndex
row += 1
If row = Dgv1.RowCount Then
MessageBox.Show("انتهى حجز نقاط القسم", "تأكيد", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
Dgv1.CurrentCell = Dgv1.Rows(row).Cells(0)
e.Handled = True
End If
End If
End Sub
جرب ورد علي أخي سفيان
بارك الله فيك أخي محمد كريّم نفس المشكل نعم يقفز الى السطر التالي لكن لا يأخذ قيم السطر و يوضعها في التكست بوكس
بارك الله فيك أخي محمد كريّم نفس المشكل نعم يقفز الى السطر التالي لكن لا يأخذ قيم السطر و يوضعها في التكست بوكس تبقى علامات السطر السابق لاحظ الصورة
(08-12-19, 12:07 AM)sofiane-phy كتب : [ -> ]بارك الله فيك أخي محمد كريّم نفس المشكل نعم يقفز الى السطر التالي لكن لا يأخذ قيم السطر و يوضعها في التكست بوكس تبقى علامات السطر السابق لاحظ الصورة
الخطأ كان في جزئية التنقل بين صفوف الداتاجريد ولم تذكر شيء بخصوص قراءة الخلايا إلى تكست بوكس
الأفضل استخدام حدث SelectionIndex_Changed
ولكن إن أحببت فيمكن دمج الكود في نفس حدث زر الانتر
جرب هذا التعديل مع مراعاة تغيير اسماء التكس بوكس والاعمدة
كود :
Private Sub txt3_KeyDown(sender As Object, e As KeyEventArgs) Handles txt3.KeyDown
If e.KeyData = Keys.Enter Then
If Dgv1.CurrentCell IsNot Nothing Then
Dim row As Integer = Dgv1.CurrentCell.RowIndex
row += 1
If row = Dgv1.RowCount Then
MessageBox.Show("انتهى حجز نقاط القسم", "تأكيد", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
Dgv1.CurrentCell = Dgv1.Rows(row).Cells(0)
'عدل اسماء التكستبوكس وارقام الاعمدة
TextBox2.Text = Dgv1.Rows(row).Cells(0).Value.ToString()
TextBox3.Text = Dgv1.Rows(row).Cells(1).Value.ToString()
TextBox4.Text = Dgv1.Rows(row).Cells(2).Value.ToString()
e.Handled = True
End If
End If
End Sub
نفس المشكلة أخي محمد ، اضف ليك معلومة ان التعامل بزر entree أو Down من لوحة المفاتيح يعمل بشكل جيد من الداتا غريد فيو لكن عندما أكون في التكست بوكس و اضغط entree بالكود المرسل عادي الى السطر التالي لكن تبقى قيم واسم السطر السابق
معنى هذا أنه يوجد خطأ لم تنتبه إليه، لأن الكود يعمل عندي بالشكل المطلوب.
يبدو أنك تقوم بجلب القيم في أكثر من حدث.
ربما يتضارب كود الضغط على التكست بوكس مع كود التنقل في الداتا قريد
لا يمكنني التأكد بدون الاطلاع على بقية الأكواد
(08-12-19, 01:05 AM)محمد كريّم كتب : [ -> ]معنى هذا أنه يوجد خطأ لم تنتبه إليه، لأن الكود يعمل عندي بالشكل المطلوب.
يبدو أنك تقوم بجلب القيم في أكثر من حدث.
ربما يتضارب كود الضغط على التكست بوكس مع كود التنقل في الداتا قريد
لا يمكنني التأكد بدون الاطلاع على بقية الأكواد
بارك الله فيك سأراجع الاحداث الأخرى ، شكر الله سعيك و أدامك الصحة و العافية