تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
جعل مفتاح انتر يعمل عمل مفتاح تاب مع الداتا جريد فيو
#1
السلام عليكم ورحمة الله وبركاته
عرضت محتويات جدول في dgv مفتاح tab ينتقل من خلية لأخرى
مفتاح Enter يأخذ خلية لأسفل أو يأخذ سجل جديد
وللتسهيل على المستخدم في تعديل بيانات الخلايا ..
فلا بد من جعل مفتاح Enter ينتقل إلى الخلية المجاورة فإن لم يجد ينزل لأول خليه في السجل التالي ... أي يعمل عمل مفتاح tab
جربت هذا الكود في حدث ال keydown للداتا جريد فيو
If e.KeyCode = Keys.Enter Then

My.Computer.Keyboard.SendKeys("{Tab}")

End If
لكنه لم يفلح وكذلك جربت الكود ده كمان
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
e.Handled = True
End If
لكنه لم يفلح ...... شكرا لكم
الرد }}}}
تم الشكر بواسطة:
#2
توجد أداة محسنة من DataGridView

قم بإضافة كلاس عن طريق القائمة Project ثم اختيار Add Class ثم ضع هذا الكود فيه
ثم شغل البرنامج مرة وحدة وبعدها تلاقي أداة جديدة في بداية الأدوات ف الاعلى خالص اسمها exDataGridView استخدمها بدل DataGridView
طبعا هي نفسها DataGridView بس مضاف عليها خدمة الانتقال للخلية التالية ب Enter وبالنسبة للانتقال للسطر التالي حيكون Tab وهذه الطريقة الامثل.

منقول من أحد الأعضاء
كود :
Public Class exDataGridView
    Inherits DataGridView

    Protected Overrides Function ProcessDataGridViewKey(ByVal e As KeyEventArgs) As Boolean
        If e.KeyCode = Keys.Enter Then
            Return Me.ProcessRightKey(e.KeyData)
        End If
        Return MyBase.ProcessDataGridViewKey(e)
    End Function

End Class
الرد }}}}
تم الشكر بواسطة:
#3
واذا كنت تبيها زي ما قلت بالضبط "فلا بد من جعل مفتاح Enter ينتقل إلى الخلية المجاورة فإن لم يجد ينزل لأول خليه في السجل التالي" فضع هذا الكود بدل السابق
الحمد لله وجدته وهو أيضا منقول
كود :
Public Class exDataGridView
    Inherits DataGridView

    Protected Overrides Function ProcessDataGridViewKey(ByVal e As KeyEventArgs) As Boolean
        If e.KeyCode = Keys.Enter Then
            If Me.CurrentCell.ColumnIndex = Me.Columns.Count - 1 Then
                Me.CurrentCell = Me.Item(0, Me.CurrentRow.Index)
                Return Me.ProcessEnterKey(e.KeyData)
            Else
                Return Me.ProcessRightKey(e.KeyData)
            End If
        End If
        Return MyBase.ProcessDataGridViewKey(e)
    End Function

End Class
الرد }}}}
تم الشكر بواسطة: thevirus
#4
شكرا اخي MsDos
الرد }}}}
تم الشكر بواسطة:
#5
طلع فيه تعديل أخير وهو الأفضل (المعذرة)

كود :
Public Class exDataGridView
    Inherits DataGridView

    Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean
        Dim key As Keys = (keyData And Keys.KeyCode)
        If key = Keys.Enter Then
            If Me.CurrentCell.ColumnIndex = Me.Columns.Count - 1 Then
                Me.CurrentCell = Me.Item(0, Me.CurrentRow.Index)
                Return Me.ProcessDownKey(keyData)
            Else
                Return Me.ProcessRightKey(keyData)
            End If
        End If
        Return MyBase.ProcessDialogKey(keyData)
    End Function

    Protected Overrides Function ProcessDataGridViewKey(ByVal e As KeyEventArgs) As Boolean
        If e.KeyCode = Keys.Enter Then
            If Me.CurrentCell.ColumnIndex = Me.Columns.Count - 1 Then
                Me.CurrentCell = Me.Item(0, Me.CurrentRow.Index)
                Return Me.ProcessDownKey(e.KeyData)
            Else
                Return Me.ProcessRightKey(e.KeyData)
            End If
        End If
        Return MyBase.ProcessDataGridViewKey(e)
    End Function

End Class
الرد }}}}
تم الشكر بواسطة: thevirus , العواد الصغير
#6
السادة الكرام
الكود ممتاز فيما لوكان اتجاه الداتا فيو من اليسار لليمن
أما اذا كان اتجاهها من اليمين لليسار فلا يصلح الكود لهذه المهمة
هل يمكن تعديل الكود
جزاكم الله كل خير
الرد }}}}
تم الشكر بواسطة:
#7
أخوي... إبحث في الكلمة سوف تجد كلمة Right غيرها إلى Left.....

أخوي... إبحث في الكود سوف تجد كلمة Right غيرها إلى Left.....
اخي استفد من الاكواد بتعديلها بما يحقق مطلبك
الرد }}}}
تم الشكر بواسطة:
#8
اخي الكريم السرور
جزاك الله كل خير
نجح الامر
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كمبو بوكس داخل الداتا جريد فارس احمد السيد 8 169 منذ 29 دقيقة مضت
آخر رد: فارس احمد السيد
  [سؤال] مشكلة مع داتا جريد فيو CoderMM 1 41 منذ 4 ساعة مضت
آخر رد: مساعدة
  [VB.NET] داتا جريد فيو فارس احمد السيد 5 150 23-02-17, 09:48 PM
آخر رد: فارس احمد السيد
Question [سؤال] محتاج طريقة لعرض الأسماء المكررة في الداتا بيز refaat130 3 103 06-02-17, 07:50 PM
آخر رد: sendbad100
  كيفية اظهار قاءمة عند النقر بزر الفأرة الايمن على الداتا قريد فيو في فيجوال 2008 المتألق9 2 81 05-02-17, 01:43 AM
آخر رد: المتألق9
  مساعده في برمجة الداتا قرد فيو معتز الجازوي 2 89 01-02-17, 12:34 AM
آخر رد: معتز الجازوي
  كيف يمكن تقريب الكسر العشري لاقرب رقم فى داتا جريد فيو السيد الجوهري 1 90 28-01-17, 06:34 PM
آخر رد: ابو ليلى
  كيف يتم جعل اول سطر فى الداتا جريد فيو يظهر الرصيد السابق السيد الجوهري 7 365 27-12-16, 11:24 PM
آخر رد: السيد الجوهري
  ماهو كود اضافة صفوف الداتا قرد الي قاعدة البيانات SQL SERVER معتز الجازوي 0 113 26-12-16, 05:13 AM
آخر رد: معتز الجازوي
  مساعده اريد كود لحذف عدد من الصفوف من الداتا قرد فيو وكذلك تنحذف من قاعدة البيانات معتز الجازوي 2 165 25-12-16, 01:44 PM
آخر رد: thevirus

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم