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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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=9343)

الصفحات: 1 2


سؤال بسيط في فيجوال بيسك - Aly El-Haddad - 20-06-13

boty كتب :جربت طريقتك اخي و هي جيدة فعلا Wink و اشتغلت عندي :o
لكن اعرف اني (تقلت) لكن ممكن شرح الكود لأني مبتدئ و عايز اكون فاهم مش مجرد حافظ Smile

بالعكس.. أنا أحب أمثالك، من يحبون تعلم و فهم اللغة(الـVB.Net) ليس من ينسخون و يلصقون

ملاحظة قبل أن أبدأ الشرح: كل أداة تضيفها من الـToolBox على الـForm هي Control مثل الـButton و الـTextBox

ملاحظة أخرى: Private مثل Dim لكن الفرق أن Private لا يمكن أن تستخدمها داخل إجراء أو دالة (Sub or Function) بينما يمكنك ذلك بـDim

وضعت هذا المتغير
كود :
Private hLastCtrl As New IntPtr
من نوع IntPtr لكي يحمل الـHandle لآخر Control خرج التحديد من عنده و خاصية Handle للـControl هي خاصية مميزة له لا يمكن أن تتكرر قيمتها من Control لآخر

الآن في الحدث Form_Load و الذي ينطلق مع تحميل الـForm في الـMemory قبل ظهورها
عملت حلقة تكرارية تدور على كل الـControls داخل الـForm لأجعل الإجراء SetLastFocusedControl ينطلق عند إنطلاق الحدث Leave لهذا الـControl

الآن مع SetLastFocusedControl
و وظيفته هي إعطاء قيمة الـHandle للـControl الذي خرج من عليه التحديد، إعطاء قيمته لـhLastCtrl

الآن مع الحدث Button_Click و الذي ينطلق عند الضغط على الزر
إذا وجد أن آخر Control محدد كان TextBox1 فيكتب فيه 1
و الشئ ذاته مع TextBox2



سؤال بسيط في فيجوال بيسك - محمود اكرم - 20-06-13

شكرا لك اخ Aly El-Haddad
نبهتني الى موضوع مهم بالنسبة الى دالة التركيز انا متاكد انها ستفيدني وقد احتاج عليها اجلا ام عاجلا
شكرا جزيلاWink


سؤال بسيط في فيجوال بيسك - boty - 20-06-13

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




علما بان Dim b, s As Boolean
توضع داخل القسم العام اي بعد
Public Class Form1
والباقي تضعه بعد القسم العام وقبل End Class

ممكن شرح الكود ؟؟؟؟


سؤال بسيط في فيجوال بيسك - boty - 20-06-13

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




علما بان Dim b, s As Boolean
توضع داخل القسم العام اي بعد
Public Class Form1
والباقي تضعه بعد القسم العام وقبل End Class

شكراااا لك اخي


سؤال بسيط في فيجوال بيسك - boty - 20-06-13

Aly El-Haddad كتب :بالعكس.. أنا أحب أمثالك، من يحبون تعلم و فهم اللغة(الـVB.Net) ليس من ينسخون و يلصقون

ملاحظة قبل أن أبدأ الشرح: كل أداة تضيفها من الـToolBox على الـForm هي Control مثل الـButton و الـTextBox

ملاحظة أخرى: Private مثل Dim لكن الفرق أن Private لا يمكن أن تستخدمها داخل إجراء أو دالة (Sub or Function) بينما يمكنك ذلك بـDim

وضعت هذا المتغير
كود :
Private hLastCtrl As New IntPtr
من نوع IntPtr لكي يحمل الـHandle لآخر Control خرج التحديد من عنده و خاصية Handle للـControl هي خاصية مميزة له لا يمكن أن تتكرر قيمتها من Control لآخر

الآن في الحدث Form_Load و الذي ينطلق مع تحميل الـForm في الـMemory قبل ظهورها
عملت حلقة تكرارية تدور على كل الـControls داخل الـForm لأجعل الإجراء SetLastFocusedControl ينطلق عند إنطلاق الحدث Leave لهذا الـControl

الآن مع SetLastFocusedControl
و وظيفته هي إعطاء قيمة الـHandle للـControl الذي خرج من عليه التحديد، إعطاء قيمته لـhLastCtrl

الآن مع الحدث Button_Click و الذي ينطلق عند الضغط على الزر
إذا وجد أن آخر Control محدد كان TextBox1 فيكتب فيه 1
و الشئ ذاته مع TextBox2

شكرا اخي افدتني كثيرا Smile


سؤال بسيط في فيجوال بيسك - محمود اكرم - 20-06-13

boty كتب :ممكن شرح الكود ؟؟؟؟
اخ boty
عندما تريد ان تستخدم متغير تريد ان تستخدمه في اكثر من حدث يجب ان تضعه في القسم العام وهو بعد Public Class Form1 عادة
بحيث تضع dim x as thing
وتستطيع حذف ما بعد المتغير
او تضع بدل thing احد التالي ليس على سبيل الحصر integer,bolean,double,long وما الى ذلك والقائمة لا تنتهي
اما عن Boolean فهو يجعل المتغير يحتمل قيمتين اما true او false
وبما نك وضعت كل هذا داخل Public Class Form1 فيجب ان يبقى داخله ولا يخرج عن End Class
اي سؤال جاهزين ان شاء الله


سؤال بسيط في فيجوال بيسك - boty - 20-06-13

محمود اكرم كتب :اخ boty
عندما تريد ان تستخدم متغير تريد ان تستخدمه في اكثر من حدث يجب ان تضعه في القسم العام وهو بعد Public Class Form1 عادة
بحيث تضع dim x as thing
وتستطيع حذف ما بعد المتغير
او تضع بدل thing احد التالي ليس على سبيل الحصر integer,bolean,double,long وما الى ذلك والقائمة لا تنتهي
اما عن Boolean فهو يجعل المتغير يحتمل قيمتين اما true او false
وبما نك وضعت كل هذا داخل Public Class Form1 فيجب ان يبقى داخله ولا يخرج عن End Class
اي سؤال جاهزين ان شاء الله

شكرا لك اخي