الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف الغي تحرك اختيار الصف التالي في Datagrid عند الضغط علي Enter?

بدأه الطائر التركي في 5 يناير 2010 · 4 رد · 1,019 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي نموذج مخلي قيمة الخاصية AcceptButton تساوى زرار في النموذج

المشكلة اني

عندي DataGridView لما بختار اي صف فيها واجي اضغط علي الزر Enter ينتقل للصف التالي ولا ينفذ كود الزرار اللي محدده في الخاصية

ايه الحل للمشكلة ده؟

شكرا

#2

في حل اخر غير خاصية accept button

وهو استخدام الخاصية KeyPreview وذلك بجعلها تساوي True

ثم قم باعلان حدث key_pressed للفورم وفي الحدث قم بفحص ال key الذي تم ضغطه من لوحة المفاتيح واذا كان هو مفتاح الEnter قم بعمل ما تريد ..

في المرفقات الكود

WindowsFormsApplication2.rar

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#3

متشكر اخي

ولكن يحدث خطئ منطقي وهو بعد ما يحدد المستخدم الصف المراد وعند الضغط علي زرار Enter من لوحة المفاتيح بتستجيب الـ DataGridView اولا ثم يتم تنفيذ الحدث

يعني

القيمة اللي هستخدمها في الحدث هي القيمة اللي محدده المستخدم + 1

لو حضرتك جربت وعدلة كود الحدث في اللي حضرتك بعته كالاتي

if (e.KeyChar == 13) MessageBox.Show(dataGridView1.CurrentRow.Index.ToString());

هيظهر اللي بقول عليه

قد يختر علي بال احد ان اقوم بلتغلب علي المشكله اني اطرح واحد من الصف النشط، جميل بس للاسف الكود اللي عاوز انفذه هو اصل موجود في زرار، ممكن برده يختر عي احد اني ان استدعى دالة الزار وارسل لها الـ sender يكون الـ dataGridView1 وهنا اعمل اتشك بحيث لو اطره واحد ولا لأ

بصراحة الموضوع كده هيكون خد اكتر من حجمه عشان كده ياريت لو في خاصية تعطل موضوع Enter في الـ dataGridView يكون احسن بكتير

شكراً اخي وانا سعيد بردك

شكرا

#4

قم بوراثة ال DataGridView وقم بإلغاء الحدث pressed اذا كان قيمته Enter

هذا مثال لتوضيح المطلوب في المرفقات

WindowsFormsApplication2.rar

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#5

متشكر جدا

هو الكود اللي حضرتك عمله في الداله OnKeyDown هو فعلا عطل الزار Enter بس للاسف برده عطل عمل الخاصية accept button

عشان كده عملت استدعاء للداله button1_Click

كالاتي

private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                e.Handled = true;
                button1_Click(null, null);
            }
        }

ده من غير ما اعمل ورثة للـDataGridView

متشكر ليك جدا وربنا يكرمك ويحرر بلدنا العزيزة فلسطين

شكرا

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…