منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كود الانتقال الى السطر التالي - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كود الانتقال الى السطر التالي (/showthread.php?tid=32408)



كود الانتقال الى السطر التالي - sofiane-phy - 07-12-19

المطلوب : عند الضغط على مفتاح 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



RE: كود الانتقال الى السطر التالي - sofiane-phy - 07-12-19

مساعدة من فظلكم


RE: كود الانتقال الى السطر التالي - محمد كريّم - 07-12-19

كود :
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



جرب ورد علي أخي سفيان


RE: كود الانتقال الى السطر التالي - sofiane-phy - 08-12-19

(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



جرب ورد علي أخي سفيان

بارك الله فيك أخي محمد كريّم نفس المشكل نعم يقفز الى السطر التالي لكن لا يأخذ قيم السطر و يوضعها في التكست بوكس

بارك الله فيك أخي محمد كريّم نفس المشكل نعم يقفز الى السطر التالي لكن لا يأخذ قيم السطر و يوضعها في التكست بوكس تبقى علامات السطر السابق لاحظ الصورة




RE: كود الانتقال الى السطر التالي - محمد كريّم - 08-12-19

(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



RE: كود الانتقال الى السطر التالي - sofiane-phy - 08-12-19

نفس المشكلة أخي محمد ، اضف ليك معلومة ان التعامل بزر entree أو Down من لوحة المفاتيح يعمل بشكل جيد من الداتا غريد فيو لكن عندما أكون في التكست بوكس و اضغط entree بالكود المرسل عادي الى السطر التالي لكن تبقى قيم واسم السطر السابق


RE: كود الانتقال الى السطر التالي - محمد كريّم - 08-12-19

معنى هذا أنه يوجد خطأ لم تنتبه إليه، لأن الكود يعمل عندي بالشكل المطلوب.

يبدو أنك تقوم بجلب القيم في أكثر من حدث.

ربما يتضارب كود الضغط على التكست بوكس مع كود التنقل في الداتا قريد

لا يمكنني التأكد بدون الاطلاع على بقية الأكواد


RE: كود الانتقال الى السطر التالي - sofiane-phy - 08-12-19

(08-12-19, 01:05 AM)محمد كريّم كتب : معنى هذا أنه يوجد خطأ لم تنتبه إليه، لأن الكود يعمل عندي بالشكل المطلوب.

يبدو أنك تقوم بجلب القيم في أكثر من حدث.

ربما يتضارب كود الضغط على التكست بوكس مع كود التنقل في الداتا قريد

لا يمكنني التأكد بدون الاطلاع على بقية الأكواد

بارك الله فيك سأراجع الاحداث الأخرى ، شكر الله سعيك و أدامك الصحة و العافية