منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ما الحدث الذي يطلقه الزر Tab - نسخة قابلة للطباعة

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

الصفحات: 1 2


ما الحدث الذي يطلقه الزر Tab - ali.alfoly - 10-04-14

السلام عليكم
كل الازرار تطلق الحدث KeyDown وغيره ما عدا الزر تاب
ما الحدث الذي يطلقه
كيف اعرف ان المستخدم ضغط عليه


RE: ما الحدث الذي يطلقه الزر Tab - silverlight - 10-04-14

الحدث الافتراضي هو.......SelectedIndexChanged

و في اللينك التلي ستجد قائمة بكل الاحداث الخاصة بهذا الكونترول

اللينــــــــــــــــــــك


RE: ما الحدث الذي يطلقه الزر Tab - ali.alfoly - 10-04-14

اخي جزاك الله خيرا
انا اقول الزر Tap ما قولت الاوبجكت TabControl
هههه
الزر تاب من لوحة المفاتيح


RE: ما الحدث الذي يطلقه الزر Tab - silverlight - 10-04-14

ههههههههههههههه.............عفوا

عموما كل الباتون الموجودة علي لوحة المفاتيح لها قيمة
بخصوص Tab

هي تقوم ب القفز من كونترول الي كونترول اخر داخل الفورم و هكذا
لكن في حالة الكتابة داخل TextBox مثلا فهي تقفز مسافة ثابتة معينة


RE: ما الحدث الذي يطلقه الزر Tab - ali.alfoly - 10-04-14

إقتباس :لكن في حالة الكتابة داخل TextBox مثلا فهي تقفز مسافة ثابتة معينة

لا يتم عندي ذلك
بل ينتقل ايضا الي العنصر التالي

الفكرة : اريد عند الضغط علي الزر Tap يفعل شي معين هل يوجد طريقة لذلك


RE: ما الحدث الذي يطلقه الزر Tab - abulayth - 10-04-14

السلام عليكم

تستطيع ذلك باستخدام LostFocus للحدث المطلوب

يعطيك العاقية


RE: ما الحدث الذي يطلقه الزر Tab - ناجي إبراهيم - 10-04-14

السلام عليكم...

العديد من المكونات تعتبر بعض المفاتيح كمفاتيح تنقل (Navigation Keys) و ليست مفاتيح إدخال (Input Keys). و بالتالي لا يتم قدح الحدث KeyDown لتلك النفاتيح. مثلاً المكون Button يعامل مفاتيح الأسهم كمفاتيح تنقل و بالتالي لا يقع الحدث KeyDown مع مفاتيح الأسهم على الـ Button.

نفس الأمر يكون مع معظم المكونات بالنسبة إلى المفتاح Tab. أي أنه يُعتبر مفتاح تنقل و ليس مفتاح إدخال.

للتعامل مع هذه الحالات لديك خياران بسيطان، و كلاهما يحتاج إلى استعمال الحدث PreviewKeyDown الذي يحدث قبل الحدث KeyDown مهما كان المفتاح المضغوط:

1. إذا كنت تريد التعامل مع ضغط المفتاح Tab مع السماح بالانتقال إلى المكون التالي (لأن المفتاح Tab يعمل بشكل افتراضي على الانتقال إلى المكون التالي) فاكتب الكود الذي تريده مباشرة في إجراء الحدث PreviewKeyDown. لا يمكنك هنا إلغاء السلوك الافتراضي للمفتاح Tab (أو أي مفتاح آخر) لأن البارامتر e الذي يحتوي على بارامترات الحدث (من النوع PreviewKeyDownEventArgs) لا يحتوي على الخاصية Handled.

2. إذا كنت تريد التعامل مع ضغط المفتاح Tab مع إلغاء عمله الافتراضي (أي منع الانتقال إلى المكون التالي):

أ. اكتب في الحدث PreviewKeyDown الكود التالي:

كود :
If e.KeyCode = Keys.Tab Then
        e.IsInputKey = True
    End If

حيث هذا الكود يجعل المكون يعتبر أن المفتاح Tab هو مفتاح إدخال، و بالتالي سيعمل على قدح الحدث KeyDown.

ب. اذهب إلى الحدث KeyDown و اكتب الكود الذي تريده.

* ستلاحظ في الحالة الثانية (أي استعمال e.IsInputKey = True و كتابة الكود في الحدث KeyDown) أن الـ Focus لا تنتقل من المكون إلى المكون الذي يليه.

نرجو الاستفادة و السلام.


RE: ما الحدث الذي يطلقه الزر Tab - ربيع - 10-04-14

نحمده ونصلي على رسوله الكريم

اجعل خاصية الـ keypreview للنموذج تساوي true واستخدم حدث الـ keypress التابع للنموذج ايضا لكتابة:
كود :
If CByte(e.KeyChar) = 9 Then
    MessageBox.Show("[TAB]")
End If



RE: ما الحدث الذي يطلقه الزر Tab - ali.alfoly - 13-04-14

السلام عليكم ورحمة الله

اسف علي التأخير في الرد كنت مشغول جدا الله المستعان

جزاكم الله خيرا وبارك فيكم
اخي ناجي كفيت ووفيت اسئل الله تعالي ان يجزيك خيرا
انا وجدت نفس التوضيح عندما بحثت لاكن للاسف ظنيت ان الزر تاب لا يفجر اي حدث حتي الحدث PreviewKeyDown فقلت كيف لي ان اكتب كود في حدث لن يتم تفجيره
وهذا الخطاء طبعا استفدت منه فائدة كبيرة وهي
يجب ان اجرب اي كود قبل ان احكم عليه مجرد القراءة السريعة للكود لا تكفي في الحكم عليه الا ان كان هناك سايق تجربة طبعا هههه


اخي ربيع جزاك الله خيرا
ولي سؤال هل الخاصية keypreview تجعل الفورم يتلقي الحدث قبل الاوبجكت


RE: ما الحدث الذي يطلقه الزر Tab - ربيع - 13-04-14

نحمده ونصلي على رسوله الكريم

لا اعلم ذلك مسبقا لكني جربت التالي:
كود :
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    MessageBox.Show("Form");
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    MessageBox.Show("Control");
}

وكانت الاسبقية للنموذج....