الحاسب الآلي · الصف الثالث الإعدادي · الترم الأول
ضبط الخصائص برمجيًّا أثناء تشغيل البرنامج
كيفية تغيير خصائص أدوات التحكم بالكود أثناء التشغيل بدلًا من نافذة الخصائص وقت التصميم، مع أمثلة عملية متعددة على أدوات مختلفة.
آخر تحديث: · كيف نراجع المحتوى
معلومات الدرس
- المادة: الحاسب الآلي — حل المشكلات وبرمجة VB.NET
- الترم: الأول
- الفصل: الفصل الرابع: نافذة الكود (Code Window) — الموضوع: الثالث
المحتوى الرئيسي
الفرق بين ضبط الخصائص وقت التصميم ووقت التشغيل
حتى الآن تعرّفنا على ضبط خصائص أدوات التحكم من نافذة الخصائص (Properties Window) أثناء تصميم الواجهة؛ وهذا ما يُسمى الضبط وقت التصميم (Design Time)، وتظل القيمة المضبوطة ثابتة عند كل تشغيل للبرنامج ما لم يغيّرها الكود.
أما الضبط وقت التشغيل (Run Time) فيعني تغيير قيمة الخاصية من داخل الكود نفسه أثناء عمل البرنامج فعليًّا، بناءً على شرط معين أو تفاعل المستخدم أو نتيجة عملية حسابية؛ وهو ما يمنح البرنامج قدرة على التفاعل والتغيّر الديناميكي، بخلاف الضبط الثابت وقت التصميم.
الصيغة العامة لضبط خاصية بالكود
تتبع جميع أدوات التحكم في VB.NET نفس الصيغة العامة لضبط أي خاصية من الكود:
اسم_الكائن.اسم_الخاصية = القيمة_الجديدة
أمثلة عملية على ضبط خصائص مختلفة
ضبط خصائص Label:
Label1.Text = "النتيجة: ناجح"
Label1.ForeColor = Color.Green
Label1.Visible = True
ضبط خصائص TextBox:
TextBox1.Text = "" ' إفراغ الصندوق
TextBox1.Enabled = False ' تعطيل الكتابة فيه
TextBox1.BackColor = Color.White
ضبط خصائص Button:
Button1.Text = "جارٍ الحفظ..."
Button1.Enabled = False
ضبط خصائص Form:
Me.Text = "نافذة تسجيل الدخول" ' Me تشير إلى النموذج الحالي نفسه
Me.BackColor = Color.LightYellow
ضبط خصائص باستخدام ألوان مخصصة بدلًا من الأسماء الجاهزة:
Label1.BackColor = Color.FromArgb(255, 200, 100) ' لون مخصص بمكوناته RGB
ضبط خاصية الخط Font (يتطلب إنشاء كائن Font جديد):
Label1.Font = New Font("Arial", 16, FontStyle.Bold)
أهمية ضبط الخصائص برمجيًّا بشرط
غالبًا ما يرتبط تغيير الخصائص وقت التشغيل بشرط منطقي باستخدام If، وهو ما يمنح البرنامج القدرة على اتخاذ قرارات مختلفة حسب الموقف:
Private Sub btnCheck_Click(sender As Object, e As EventArgs) Handles btnCheck.Click
Dim score As Integer = Val(TextBox1.Text)
If score >= 50 Then
Label1.Text = "ناجح"
Label1.ForeColor = Color.Green
Else
Label1.Text = "راسب"
Label1.ForeColor = Color.Red
End If
End Sub
في هذا المثال يتغيّر كل من نص العنوان ولونه تلقائيًّا حسب الدرجة التي يدخلها المستخدم، وهو أمر لا يمكن تحقيقه بالضبط الثابت وقت التصميم فقط.
مثال شامل يجمع عدة أدوات
عند الضغط على زر، يُعطَّل الزر نفسه، وتُفعَّل مجموعة أدوات أخرى، وتتغيّر رسالة توضيحية:
Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
btnStart.Enabled = False
GroupBox1.Enabled = True
Label1.Text = "يمكنك الآن إدخال البيانات"
Label1.ForeColor = Color.Blue
End Sub
النقاط الرئيسية
- ضبط الخصائص وقت التصميم من نافذة الخصائص يعطي قيمًا ثابتة، بينما ضبطها بالكود وقت التشغيل يمنح البرنامج سلوكًا ديناميكيًّا متغيرًا.
- الصيغة العامة لضبط أي خاصية بالكود هي:
اسم_الكائن.اسم_الخاصية = القيمة. - تُستخدَم كلمة
Meداخل كود النموذج للإشارة إلى النموذج الحالي نفسه. - يمكن ضبط الألوان بأسماء جاهزة مثل Color.Red، أو بمكوناتها عبر Color.FromArgb.
- غالبًا ما يُربَط تغيير الخصائص برمجيًّا بشروط منطقية (If) لجعل استجابة البرنامج مناسبة للموقف.
أسئلة للمراجعة
- ما الفرق بين ضبط خاصية من نافذة الخصائص وضبطها بالكود؟ اذكر ميزة لكل أسلوب.
- اكتب سطر كود يضبط لون خلفية النموذج الحالي إلى اللون الرمادي الفاتح باستخدام كلمة Me.
- اكتب كودًا يتحقق من محتوى TextBox1، فإذا كان فارغًا يعطّل الزر btnSubmit، وإلا يفعّله.
- ما الفرق بين استخدام Color.Red واستخدام Color.FromArgb لتحديد لون معين؟
- اكتب معالج حدث Click لزر باسم btnHide يخفي (Visible = False) كلًّا من Label2 وTextBox2 معًا عند الضغط عليه.
الأهداف العامة
- أن يميّز الطالب بين ضبط الخصائص وقت التصميم (Design Time) وضبطها وقت التشغيل (Run Time).
- أن يكتب الطالب الصيغة العامة لضبط خاصية أي كائن بالكود.
- أن يطبّق الطالب ضبط عدة خصائص مختلفة برمجيًّا على أدوات تحكم متنوعة.