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

أرجوا المساعدة في Windows Application

بدأه powerIslam في 8 فبراير 2010 · 9 رد · 989 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أرجوا المساعدة في Windows Application

أريد عند الضغط علر زر معين من الكيبورد تنفيذ زر من البرنامج

مثال:

post-215521-12656555327368_thumb.gif

#2

السلام عليكم ورحمة الله وبركاته عند عمل هذا البرنامج (الاله الحاسبة) يجب عليك بعد رسم هذا ال interface سواء سحبا أو (Programmatically) أن تضع أحداث (Events) بأن تضغط ضغطتين على الButton المراد عمل

الحدث له ثم بعد ذلك تكتب ما تريده

#3

في المثال المذكور :عند الضغط على الزر 7 (double click) تخبر ال(Compiler) أن يضع 7 في ال(Text Box )

textbox1.Text="7";

#4

لابد من عمل ال Events لجميع ال buttons بان تضغط double click on the button

#5

قم بتغيير قيمة الخاصية KeyPreview للفورم إلى true ثم قم بحجز اشتراك في الحدث KeyPress للفورم و قم بالتعديل على الكود التالي حسب احتياجات برنامجك :

        // يحدث عندما يقوم المستخدم بالضغط على مفتاح على لوحة المفاتيح
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            // التعرف على المفتاح الذي تم الضغط عليه
            switch (e.KeyChar)
            {
                case Keys.NumPad7: // الزر 7 على لوحة المفاتيح الرقمية
                    Button7.PerformClick(); // النقر على الزر 7 الموجود على النموذج برمجيا
                    break;
                case Keys.NumPad0: // الزر 0 على لوحة المفاتيح الرقمية
                    Button0.PerformClick();
                    break;
            }
        }

بالتوفيق :)

1
#6
محمد رضى كتب:

قم بتغيير قيمة الخاصية KeyPreview للفورم إلى true ثم قم بحجز اشتراك في الحدث KeyPress للفورم و قم بالتعديل على الكود التالي حسب احتياجات برنامجك :

        // يحدث عندما يقوم المستخدم بالضغط على مفتاح على لوحة المفاتيح
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            // التعرف على المفتاح الذي تم الضغط عليه
            switch (e.KeyChar)
            {
                case Keys.NumPad7: // الزر 7 على لوحة المفاتيح الرقمية
                    Button7.PerformClick(); // النقر على الزر 7 الموجود على النموذج برمجيا
                    break;
                case Keys.NumPad0: // الزر 0 على لوحة المفاتيح الرقمية
                    Button0.PerformClick();
                    break;
            }
        }

بالتوفيق :)

مشكور جدا أخي لك ولكل من شارك بمساعدتي ما كتبته هو ما أريدة بل الضبط لكن لم أعرف كيف أعمله و خصوصا "قم بحجز اشتراك في الحدث KeyPress" ماذا يعني هل هو أداه جاهزة في TollBox و لقد طلب مني البرنامج تحويل Keys.NumPad7 إلى Char

أذا أحببت أرفقت لك المشروع أذا أمكن التعديل علية و تنفيذ ما كتبتة لي و لك كامل الشكر أخي الكريم و السلام عليكم

المشروع:

Calc.zip

#7

هناك طريقتين لحجز حدث

أولهما كتابته يديويا فى الconstractor الخاص بالنافذة التى سوف تتلقى الحدث(فى حالتنا نافذة الآلة الحاسبة نفسها) مع مراعاة أنه لابد من أن يكون سطر حجز الحدث بعد الدالة InitializeComponent حيث أن هذه الدالة هى التى تقوم بتعريف كافة متغيرات النافذة

public Form1()
        {
            InitializeComponent();
         this.KeyPress += new KeyPressEventHandler(Form1_KeyPress);
        }

و فى هذه الحالة الدالة التى سوف يتم مناداتها حينما يتم الضغط على زر هى Form1_KeyPress

و أيضا من الممكن وضعه فى دالة الForm_Load

أو وضعه فى أى مكان مع مراعاة التسلسل المنطقى للأحداث

ثانيا و هذه الطريقة الأسهل و ذلك من خلال خصائص النافذة

post-63827-12657081759958_thumb.png

و سوف تظهر لك دالة بالإسم الذى قمت بإختياره( فى الصورة : MyKeyPressEvent )

فتقم بكتابة الكود فيها

بالتوفيق

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#8
_- محمد نور -_ كتب:

هناك طريقتين لحجز حدث

أولهما كتابته يديويا فى الconstractor الخاص بالنافذة التى سوف تتلقى الحدث(فى حالتنا نافذة الآلة الحاسبة نفسها) مع مراعاة أنه لابد من أن يكون سطر حجز الحدث بعد الدالة InitializeComponent حيث أن هذه الدالة هى التى تقوم بتعريف كافة متغيرات النافذة

public Form1()
        {
            InitializeComponent();
         this.KeyPress += new KeyPressEventHandler(Form1_KeyPress);
        }

و فى هذه الحالة الدالة التى سوف يتم مناداتها حينما يتم الضغط على زر هى Form1_KeyPress

و أيضا من الممكن وضعه فى دالة الForm_Load

أو وضعه فى أى مكان مع مراعاة التسلسل المنطقى للأحداث

ثانيا و هذه الطريقة الأسهل و ذلك من خلال خصائص النافذة

post-63827-12657081759958_thumb.png

و سوف تظهر لك دالة بالإسم الذى قمت بإختياره( فى الصورة : MyKeyPressEvent )

فتقم بكتابة الكود فيها

بالتوفيق

السلام عليكم مشكور أخي الكريم كلامك صح لكن ظهرت معي مشكله

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {

            button1.PerformClick();


        }

ضغط أ ني محرف من لوحة المفاتيح يؤدي إلى تنفيذ الحدث لذلك لجأت كما قال أحد الأخوة سابقا إلر Switch لكنها لم تعمل

// يحدث عندما يقوم المستخدم بالضغط على مفتاح على لوحة المفاتيح
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            // التعرف على المفتاح الذي تم الضغط عليه
            switch (e.KeyChar)
            {
                case Keys.NumPad7: // الزر 7 على لوحة المفاتيح الرقمية
                    Button7.PerformClick(); // النقر على الزر 7 الموجود على النموذج برمجيا
                    break;
                case Keys.NumPad0: // الزر 0 على لوحة المفاتيح الرقمية
                    Button0.PerformClick();
                    break;
            }
        }

أرجوا حل هذه المشكلة و شكرا لكل الأخوة الذين شاركوا في الموضوع و جزاكم الله الخير

#9

آسف على الخطأ الغير مقصود, الكود الذي أرفقت في ردي السابق كتبته على عجل...

هذا مثال بسيط أرجو أن تستفيد منه :

            // التعرف على المفتاح الذي تم الضغط عليه
            switch (e.KeyChar)
            {
                case '0': // الزر 0 
                    button1.PerformClick();
                    break;
            }

الكود يجب أن تتم زيادته داخل دالة الحدث KeyPress

بالتوفيق :)

#10
محمد رضى كتب:

آسف على الخطأ الغير مقصود, الكود الذي أرفقت في ردي السابق كتبته على عجل...

هذا مثال بسيط أرجو أن تستفيد منه :

            // التعرف على المفتاح الذي تم الضغط عليه
            switch (e.KeyChar)
            {
                case '0': // الزر 0 
                    button1.PerformClick();
                    break;
            }

الكود يجب أن تتم زيادته داخل دالة الحدث KeyPress

بالتوفيق :)

مشكور جد ا أخي الكريم ظبطت و الحمد لله رب العالمين و شكرا لكل من ساهم في هذه الموضوع و السلام عليكم

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