تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعلم إنشاء قائمة ListItem خاصة بك -- ماهي - و ماخصائصها - و مافوائدها -
#1
كاتب الموضوع : lo2i

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

شدّني قبل قليل موضوع لأخ في المنتدى , يريد إنشاء قائمة بأسماء مواقع البحث
google , yahoo , bing ... etc

الجدير بالذكر انه يريد وضعها في أداة combobox ليقوم بعد اختيار المستخدم لواحد منها بفتح المختار
فمثلاً اذا اختار المستخدم google سيفتح له ,, وهكذا دواليك ...
-----
كما هو ملاحظ يمكننا كتابة كود بسيط يحل المشكلة وينهي الامر بعد طرق :

الطريقة الأول :
استعمال جملة الشرط if statement و else if


كود :
[color=#000000][COLOR=#007700]If [/color][color=#0000bb]ComboBox1[/color][color=#007700].[/color][color=#0000bb]SelectedIndex [/color][color=#007700]= [/color][COLOR=#0000bb]0 Then
            Process[/COLOR][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#dd0000]"www.google.com"[/color][COLOR=#007700])
        ElseIf [/COLOR][color=#0000bb]ComboBox1[/color][color=#007700].[/color][color=#0000bb]SelectedIndex [/color][color=#007700]= [/color][COLOR=#0000bb]1 Then
            Process[/COLOR][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#dd0000]"www.yahoo.com"[/color][COLOR=#007700])
        ElseIf [/COLOR][color=#0000bb]ComboBox1[/color][color=#007700].[/color][color=#0000bb]SelectedIndex [/color][color=#007700]= [/color][COLOR=#0000bb]2 Then
            Process[/COLOR][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#dd0000]"www.bing.com"[/color][COLOR=#007700])
        [/COLOR][color=#0000bb]End [/color][COLOR=#007700]If  
[/COLOR][/COLOR]

لاحظ معي اننا سوف نشترط في كل مرة على رقم ال index الذي اختاره المستخدم
ناهيكَ عن الاخطاء التي سوف تظهر لك من لغط بين المواقع ودخولها في بعضها البعض !!
----------------------------------
الطريقة الثانية :
select case و الـ cases و الـ default


كود :
[color=#000000][COLOR=#0000bb]  Select [/color][color=#007700]Case [/color][color=#0000bb]ComboBox1[/color][color=#007700].[/color][COLOR=#0000bb]SelectedIndex
            [/COLOR][color=#007700]Case [/color][COLOR=#0000bb]0
                Process[/COLOR][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#dd0000]"www.google.com"[/color][COLOR=#007700])
            Case [/COLOR][COLOR=#0000bb]1
                Process[/COLOR][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#dd0000]"www.yahoo.com"[/color][COLOR=#007700])
            Case [/COLOR][COLOR=#0000bb]2
                Process[/COLOR][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#dd0000]"www.bing.com"[/color][COLOR=#007700])
        [/COLOR][COLOR=#0000bb]End Select  
[/COLOR][/COLOR]

يعتمد الامر ايضاً على رقم ال index

باختصار الكودان (وجهان لعملة واحدة)
---------------
طبعاً هذه الطريقتين ظهرت لدينا بديهياً لمعرفتنا سابقاً بعدد المواقع التي نريد فتحها .. !!

تصور معي إني أريد إضافة أكثر من 100 موقع للـ combobox او للـ listbox مثلاُ

هل ستلجأ لجملة الشرط (if statement) ؟؟
ام ستلجأ إلى الـ select case لكتابة المئات من ال cases ؟؟


الجواب في هذه الحالة سألجا شخصياً لكتابة كلاس يخدمني ويقلل من وقتي ومن الاخطاء المتوقعة .. ,, فماذا عنك ؟؟ (اعطني تجربتك )

بسم الله الرحمن الرحيم ..

بعد فتح الفيجوال بيسك واختيار windows application

ننشئ مشروع مشابه لهذه الصورة ..



ونقوم بفتح شاشة الكود

لنقوم بكتابة هذه الفئة ..


كود :
[color=#000000][COLOR=#007700]Class [/color][COLOR=#0000bb]listitem

        [/COLOR][color=#007700]Private [/color][color=#0000bb]_text [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#0000bb]String[/color][COLOR=#007700].Empty
        Private [/COLOR][color=#0000bb]_value [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#0000bb]String[/color][COLOR=#007700].Empty

        [/COLOR][color=#0000bb]Sub [/color][color=#007700]New([/color][color=#0000bb]ByVal text [/color][color=#007700]As [/color][color=#0000bb]String[/color][color=#007700], [/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
            [/COLOR][color=#0000bb]_text [/color][color=#007700]= [/color][COLOR=#0000bb]text
            _value [/COLOR][color=#007700]= [/color][COLOR=#0000bb]value
        End Sub

        Property text[/COLOR][color=#007700]() As [/color][COLOR=#0000bb]String
            Get
                [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_text
            End Get
            Set[/COLOR][color=#007700]([/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
                [/COLOR][color=#0000bb]_text [/color][color=#007700]= [/color][COLOR=#0000bb]value
            End Set
        End Property

        Property value[/COLOR][color=#007700]() As [/color][COLOR=#0000bb]String
            Get
                [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_value
            End Get
            Set[/COLOR][color=#007700]([/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
                [/COLOR][color=#0000bb]_value [/color][color=#007700]= [/color][COLOR=#0000bb]value
            End Set
        End Property

        [/COLOR][color=#007700]Public [/color][color=#0000bb]Overrides [/color][color=#007700]Function [/color][color=#0000bb]ToString[/color][color=#007700]() As [/color][COLOR=#0000bb]String
            [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_text
        End [/COLOR][COLOR=#007700]Function

    [/COLOR][color=#0000bb]End [/color][COLOR=#007700]Class  
[/COLOR][/COLOR]

شرح الكود :

كود :
[color=#000000][COLOR=#007700]Private [/color][color=#0000bb]_text [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#0000bb]String[/color][COLOR=#007700].Empty
Private [/COLOR][color=#0000bb]_value [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#0000bb]String[/color][COLOR=#007700].Empty  
[/COLOR][/COLOR]

متغيران محليّان لحمل قيمة ال text ,ال value التي سوف تُدخل في ال listitem

كود :
[color=#000000][COLOR=#0000bb]    Sub [/color][color=#007700]New([/color][color=#0000bb]ByVal text [/color][color=#007700]As [/color][color=#0000bb]String[/color][color=#007700], [/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
            [/COLOR][color=#0000bb]_text [/color][color=#007700]= [/color][COLOR=#0000bb]text
            _value [/COLOR][color=#007700]= [/color][COLOR=#0000bb]value
        End Sub  
[/COLOR][/COLOR]


الـ subroutine الأساسية التي سيتم التعامل معها
من خلال إدخال قيمة كلاً من ال text والـ value واسنادها للمتغيران التي تم شرحهم في الاعلى !!


كود :
[color=#000000][COLOR=#0000bb]        Property text[/color][color=#007700]() As [/color][COLOR=#0000bb]String
            Get
                [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_text
            End Get
            Set[/COLOR][color=#007700]([/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
                [/COLOR][color=#0000bb]_text [/color][color=#007700]= [/color][COLOR=#0000bb]value
            End Set
        End Property  
[/COLOR][/COLOR]

الخاصية text تقوم بضبط وإعادة قيمة المتغير text_


كود :
[color=#000000][COLOR=#0000bb]   Property value[/color][color=#007700]() As [/color][COLOR=#0000bb]String
            Get
                [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_value
            End Get
            Set[/COLOR][color=#007700]([/color][color=#0000bb]ByVal value [/color][color=#007700]As [/color][color=#0000bb]String[/color][COLOR=#007700])
                [/COLOR][color=#0000bb]_value [/color][color=#007700]= [/color][COLOR=#0000bb]value
            End Set
        End Property  
[/COLOR][/COLOR]

الخاصية value تقوم بضبط وإعادة قيمة المتغير _value


كود :
[color=#000000][COLOR=#007700]Public [/color][color=#0000bb]Overrides [/color][color=#007700]Function [/color][color=#0000bb]ToString[/color][color=#007700]() As [/color][COLOR=#0000bb]String
            [/COLOR][color=#007700]Return [/color][COLOR=#0000bb]_text
        End [/COLOR][COLOR=#007700]Function  
[/COLOR][/COLOR]
وهي لتحويل مخرجات الفئة إلى نصوص مقروءة ولاحظ انها ستعيد قيمة ال text_
---------------------
وفي حدث الفورم لود form_load


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


كود :
[color=#000000][COLOR=#0000bb]        ListBox1[/color][color=#007700].[/color][color=#0000bb]Items[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700](New [/color][color=#0000bb]listitem[/color][color=#007700]([/color][color=#dd0000]"vb4arab"[/color][color=#007700], [/color][color=#dd0000]"http://www.vb4arab.com"[/color][COLOR=#007700]))
        [/COLOR][color=#0000bb]ListBox1[/color][color=#007700].[/color][color=#0000bb]Items[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700](New [/color][color=#0000bb]listitem[/color][color=#007700]([/color][color=#dd0000]"google"[/color][color=#007700], [/color][color=#dd0000]"http://www.google.com"[/color][COLOR=#007700]))
        [/COLOR][color=#0000bb]ListBox1[/color][color=#007700].[/color][color=#0000bb]Items[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700](New [/color][color=#0000bb]listitem[/color][color=#007700]([/color][color=#dd0000]"*****"[/color][color=#007700], [/color][color=#dd0000]"http://www.*****.com"[/color][COLOR=#007700]))
        [/COLOR][color=#0000bb]ListBox1[/color][color=#007700].[/color][color=#0000bb]Items[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700](New [/color][color=#0000bb]listitem[/color][color=#007700]([/color][color=#dd0000]"hotmail"[/color][color=#007700], [/color][color=#dd0000]"http://www.hotmail.com"[/color][COLOR=#007700]))
        [/COLOR][color=#0000bb]ListBox1[/color][color=#007700].[/color][color=#0000bb]Items[/color][color=#007700].[/color][color=#0000bb]Add[/color][color=#007700](New [/color][color=#0000bb]listitem[/color][color=#007700]([/color][color=#dd0000]"facebook"[/color][color=#007700], [/color][color=#dd0000]"http://www.facebook.com"[/color][COLOR=#007700]))  
[/COLOR][/COLOR]

السؤال الان كيف سنقوم بإسترجاع الـ text والـ value للعنصر المختار من القائمة

بكل بساطة سنحتاج للدالة CTYPE

كود :
[color=#000000][COLOR=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]CType[/color][color=#007700]([/color][color=#0000bb]ListBox1[/color][color=#007700].[/color][color=#0000bb]SelectedItem[/color][color=#007700], [/color][color=#0000bb]listitem[/color][color=#007700]).[/color][color=#0000bb]text[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]TextBox2[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]CType[/color][color=#007700]([/color][color=#0000bb]ListBox1[/color][color=#007700].[/color][color=#0000bb]SelectedItem[/color][color=#007700], [/color][color=#0000bb]listitem[/color][color=#007700]).[/color][color=#0000bb]value[/color][COLOR=#007700]()  
[/COLOR][/COLOR]


الاول سيقوم بإسترجاع النــــص للعنصر المختار .
الثاني سيقوم بإسترجاع القيمة للعنصر المختار .


الان وفي زر فتح الموقع نقوم بكتابة الكود التالي ...


كود :
[color=#000000][COLOR=#007700]If [/color][color=#0000bb]Not TextBox2[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#dd0000]"" [/color][COLOR=#0000bb]Then
            Process[/COLOR][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#0000bb]Trim[/color][color=#007700]([/color][color=#0000bb]TextBox2[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700]))
        [/COLOR][color=#0000bb]End [/color][COLOR=#007700]If  
[/COLOR][/COLOR]


المشروع في المرفقات ,,,

لاتنسونا من دعائكم ..


الملفات المرفقة
.rar   WindowsApplication3.rar (الحجم : 62.35 ك ب / التحميلات : 38)
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  هل تعلم؟ Aly El-Haddad 7 1,267 17-08-15, 01:59 AM
آخر رد: عبد الله
  بشرى لكل من يريد تعلم البرمجة بالفيجوال بيسك دوت نت arbtech 8 1,606 21-08-13, 11:32 PM
آخر رد: arbtech
  تعلم أستخدام My.Settings لحفظ التغييرات عند الإغلاق Aly El-Haddad 15 2,737 13-06-13, 05:32 PM
آخر رد: ابراهيم
  الصورة العربية - لآ مشقة بعد الآن في إنشاء الدروس ! RaggiTech 2 777 25-04-13, 12:22 PM
آخر رد: خليل اسماعيل
  تعلم إضافة ألعاب الفلاش و مقاطع الفيديو الفلاشية إلى برنامجك Aly El-Haddad 1 764 13-04-13, 06:46 PM
آخر رد: Sajad
  معلومة :: تعلم كيف تحفظ صورة في My.Settings بدون الإحتياج إلى مسارها! أسامة أحمد 3 1,023 16-12-12, 06:25 PM
آخر رد: 3amo
  تعلم كيف تصنع برنامج Notepad او مايسمى بالمفكرة AHMED`AMIN 8 1,897 10-10-12, 02:45 PM
آخر رد: مبرمج أوتار
  للمبتدئين --->> تعلم ( Select Case ) بالشرح مع المثال RaggiTech 0 1,319 10-10-12, 09:17 AM
آخر رد: RaggiTech
  هل تريد تعلم السي شارب -اذن هذا هو المدخل- RaggiTech 0 425 05-10-12, 02:53 AM
آخر رد: RaggiTech
  مثال على عملية إنشاء Windows Service – إنشاء برنامج تشفير تلقائي للملفات RaggiTech 1 580 05-10-12, 01:42 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم