مربع الخيارات combobox
في هذا الدرس سوف نتعرف على مربع الخيارات والأزرار
كما هو معروف أداتي مربع الخيارات والزر من أحثر الأدوات غستعمالا في كافة لغات البرمجة المختلفة
ولا يكاد يوجد برنامج لا يحتوي على أي منهما
وبالطبع هنالك العديد من الأدوات المهمة الأخرى سوف نتعرف عليها من خلال هذه السلسلة في دروسنا القادمة
ملحوظة
من هذا الدرس سوف نقوم بنشر الأمثلة المختلفة بدون قوالب جاهزة للتنفيز
أما الآن فدعونا مع هذا الدرس الجديد
إضافة العناصر إلى مربع الخيارات
تستخدم وظيفة Items.Add() لإضافة العناصر إلى مربع الخيارات
وفي ما يلي نموذج قصير لتوضيح كيفية إضافة العناصر المختلفة
using System;
using System.Drawing;
using System.Windows.Forms;
namespace sample
{
public class combo
{
public static void Main(String[] args) {
Application.Run(new Form1());
}
}
class Form1 : Form
{
public Form1()
{
this.Width = 250;//عرض الشاشة
this.Height = 300;//ارتفاع الشاشة
this.Text = "مربع الخيارات";//عنوان أو اسم البرنامج
ComboBox combo1 = new ComboBox();//إنشاء مربع خيارات باسم combo1
combo1.Location = new Point(60, 50);//خاصية location وهي تستخدم لإظهار كافة الأدوات المختلفة على الشاشة
ونقطة البداية الأولى تكون من أعلى الشاشة من أقصى اليسار إلى اليمين وفي هذه الحالة هي 60 نقطة
والنقطة الثانية من أعلى الشاشة من أقصى اليسار إلى أسفل وفي هذه الحالة هي 50 نقطة
//إضافة العناصر إلى مربع الخيارات
combo1.Items.Add("11");
combo1.Items.Add("22");
combo1.Items.Add("33");
combo1.Items.Add("44");
this.Controls.Add(combo1);//إضافة أدات مربع الخيارات إلى البرنامج وفي حالة عدم كتابة هذا السطر فلن تظهر لنا أدات مربع الخيارات على الشاشة
}
}
}
وعند تفيذ هذا النموذج يظهر لنا مربع خيارات يحتوي على العناصر التالية
11
22
33
44
ولأننا لم نضف حتى الآن أي وظائف أخرى فقط يظهر لنا العناصر التي قمنا بإضافتها ولا يمكننا فعل أي شيء آخر
طرق إظهار عناصر مربع الخيارات
يمكن تغيير طريقة إظهار عناصر مربع الخيارات وذلك باستخدام خاصية DropDownStyle
وفي ما يلي بعذ العناصر التي يمكن استخدامها مع خاصية drobDownStyle
وهي كما يل
1. ComboBoxStyle.DropDown وهي الخاصية الإفتراضية وباستخدام هذه الخاصية تكون عناصر مربع الخيارات متاحة للتحرير والتعديل مباشرة من على البرنامج
2. ComboBoxStyle.DropDownList وعند تعيين هذه الخاصية لا يمكن تحرير عناصر مربع الخيارات
3. ComboBoxStyle.Simple وفي هذه الحالة يتم إظهار كافة العناصر بصورة مستمرة
وطيرقة كتابتها تكون كما يلي
الطريقة الأولى combo.DropDownStyle = ComboBoxStyle.DropDown;
الطريقة الثانية combo.DropDownStyle = ComboBoxStyle.DropDownList;
الطريقة الثالثة combo.DropDownStyle = ComboBoxStyle.Simple;
إختيار العناصر
ولإختيار وتعيين أحد عناصر مربع الخيارات نستخدم خاصية SelectedIndexوباستخدام خاصية SelectedIndex يمكننا تغيير وتحديد العنصر المراد الإنتقال إليه
فمثلا عند إضافة سطر
combo1.SelectedIndex = 2;
ينتقل المؤشر تلقائيا إلى العنصر رقم ثلثة وهو 33
والسبب في كتابتنا للرقم 2 عند غختيار العنصر الثالثة هو أن حساب العناصر المختلفة يبدأ من الرقم 0 وليس الرقم واحد كما هو متعارف عليه
ولذا إذا أردنا جعل المؤشر على أول عنصر يجب استبدال رقم 2 برقم 0
إضافة مجموعة من العناصر دفعة واحد
إضافة مجموعة من العناصر دفعة واحدة باستخدام خاصية AddRange
بدلا عن إضافة كل عنصر على منفردا يمكننا إضافة مجموعة من العناصر مجتمعة وذلك باستخدام خاصية AddRange
وفي ما يلي هذا النموذج لكيفية الاستخدام
using System;
using System.Drawing;
using System.Windows.Forms;
namespace sample
{
public class combo
{
public static void Main(String[] args) {
Application.Run(new Form1());
}
}
class Form1 : Form
{
public Form1()
{
this.Width = 250;//عرض الشاشة
this.Height = 300;//ارتفاع الشاشة
this.Text = "";//عنوان واسم البرنامج
ComboBox combo1 = new ComboBox();//إنشاء مربع خيارات باسم combo1
combo1.Location = new Point(50, 50);
//إضافة العديد من العناصر دفعة واحدة
combo1.Items.AddRange(new String[]{"11", "22", "33", "44"});
/* وللإضافة عنصر بعد عنصر
combo1.Items.Add("11");
combo1.Items.Add("22");
combo1.Items.Add("33");
combo1.Items.Add("44");
*/
this.Controls.Add(combo1); //إضافة مربع الخيارات إلى البرنامج
}
}
}
التعرف على محتوى العنصر المختار
وللتعرف على العنصر الذي تم اختياره
لمعرفة محتوى ورقم العنصر المعين يتم استخدام
خاصية Text للتعرف على المحتوى النصي للعنصر المعين
وخاصية SelectedIndex لمعرفة الرقم التسلسلي للعنصر المعين
ونموذج الاستخدام هو كما يلي
using System;
using System.Drawing;
using System.Windows.Forms;
namespace sample
{
public class combo
{
public static void Main(String[] args) {
Application.Run(new Form1());
}
}
class Form1 : Form
{
ComboBox combo1;
public Form1()
{
this.Width = 250;
this.Height = 300;
this.Text = "مربع الخيارات";
combo1 = new ComboBox();
combo1.Location = new Point(50, 50);
//إضافة مجموعة من العناصر مجتمعة
combo1.Items.AddRange(new String[]{"Python", "C#", "Perl", "Ruby", "Java"});
this.Controls.Add(combo1);
Button btn = new Button();//إنشاء زر جديد باسم btn
btn.Location = new Point(50, 100);
btn.Text = "إضغط هنا";//اسم الزر الذي يظهر على الشاشة
btn.Click += HandleBtnClick;//تعيين الاسم عند الضغط على هذا الزر. وأيضا يجب كتابة الوظيفة التي يراد تنفيذها بنفس هذا الاسم.
this.Controls.Add(btn);
}
//من هنا نقوم بكتابة محتوى العملية التي نريد تنفيذها بعد الضغط على زر btn
void HandleBtnClick (object sender, EventArgs e)
{
MessageBox.Show("رقم العنصر الذي تم اختياره هو " + combo1.SelectedIndex + " واسم العنصر هو " + combo1.Text);
}
}
}
ترتيب العناصر
الترتيب التلقائي لعناصر مربع الخيارات
عندما نجعل خاصية Sorted في حالة true يقوم مربع الخيارات بترتيب العناصر بصورة تلقاءية
وذلك كما هو موضح في النموذج التالي
using System;
using System.Drawing;
using System.Windows.Forms;
namespace sample
{
public class combo
{
public static void Main(String[] args) {
Application.Run(new Form1());
}
}
class Form1 : Form
{
ComboBox combo1;
public Form1()
{
this.Width = 250;
this.Height = 300;
this.Text = "مربع الخيارات";
combo1 = new ComboBox();
combo1.Location = new Point(50, 50);
//إضافة مجموعة من العناصر مجتمعة
combo1.Items.AddRange(new String[]{"z", "y", "x", "b", "a"});
this.Controls.Add(combo1);
Button btn = new Button();
btn.Location = new Point(50, 100);
btn.Text = "ترتيب";
btn.Click += HandleBtnClick;
this.Controls.Add(btn);
}
void HandleBtnClick (object sender, EventArgs e)
{
combo1.Sorted = true;
combo1.Items.Add("c");
}
}
}
عند الضغط على الزر تصهر لنا جميع العناصر مرتبة على حسب الحروف الأبجدية
وبعد الترتيب قمنا بإضافة عنصر جديد
هنىلك العديد والكثير من الخصائص الخاصة بمربع الخيارات
وعلى الأشخاص الراغبين في معرفة المزيد الرجاء البحث في محركات البحث المختلفة
ولتنفيذ هذه النموذجات الرجاء مراجعة الدروس السابقة وبالله التوفيق.