تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
جلب عناصر قائمة فرعية في MenuStrip
#1
السلام عليكم ورحمة اله وبركاته
اخوتي الكرام
اعمل حاليا على  برنامج انشاء ادوات desktop Application للغة Python اعتمادا على فيجوال ستوديو
بحيث نرسم ونضع مانريد من ادوات ثم يتم تحويلها الى ملف بلغة البايثون
كل الامور تسير بشكل ممتاز لكن واجهتني عقبة صغيرة لم اجد لها حلا
في المثال التالي لدي فورم وفيها menuStrip وفيه قوائم وكل قائمة فيها بنود ويمكن ان يكون احد البنود يحتوي على قائمة فرعية كما موضح في الصورة
قمت بكتابة كود جلب اسماء القوائم وبنود كل قائمة وتم ذلك لكنني لم استطع جلب القائمة الفرعية وبنودها 
والمطلوب كود حلقة فور على البنود فيما لو كانت تحتوي على قائمة فرعية وجلب بنودها 
اتمنى ان يكون الشرح واضح

  


الملفات المرفقة صورة/صور
   

.zip   MenuStrip.zip (الحجم : 87.47 ك ب / التحميلات : 6)
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: asmarsou , جيولوجي مبتدئ , سعود , سعود
#2
(07-08-22, 06:59 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة اله وبركاته
اخوتي الكرام
اعمل حاليا على  برنامج انشاء ادوات desktop Application للغة Python اعتمادا على فيجوال ستوديو
بحيث نرسم ونضع مانريد من ادوات ثم يتم تحويلها الى ملف بلغة البايثون
كل الامور تسير بشكل ممتاز لكن واجهتني عقبة صغيرة لم اجد لها حلا
في المثال التالي لدي فورم وفيها menuStrip وفيه قوائم وكل قائمة فيها بنود ويمكن ان يكون احد البنود يحتوي على قائمة فرعية كما موضح في الصورة
قمت بكتابة كود جلب اسماء القوائم وبنود كل قائمة وتم ذلك لكنني لم استطع جلب القائمة الفرعية وبنودها 
والمطلوب كود حلقة فور على البنود فيما لو كانت تحتوي على قائمة فرعية وجلب بنودها 
اتمنى ان يكون الشرح واضح

  
  تفضل استاذي الكريم انتظر التقييم تقييم الاستاذ لطلابه

(07-08-22, 08:21 PM)asmarsou كتب :
(07-08-22, 06:59 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة اله وبركاته
اخوتي الكرام
اعمل حاليا على  برنامج انشاء ادوات desktop Application للغة Python اعتمادا على فيجوال ستوديو
بحيث نرسم ونضع مانريد من ادوات ثم يتم تحويلها الى ملف بلغة البايثون
كل الامور تسير بشكل ممتاز لكن واجهتني عقبة صغيرة لم اجد لها حلا
في المثال التالي لدي فورم وفيها menuStrip وفيه قوائم وكل قائمة فيها بنود ويمكن ان يكون احد البنود يحتوي على قائمة فرعية كما موضح في الصورة
قمت بكتابة كود جلب اسماء القوائم وبنود كل قائمة وتم ذلك لكنني لم استطع جلب القائمة الفرعية وبنودها 
والمطلوب كود حلقة فور على البنود فيما لو كانت تحتوي على قائمة فرعية وجلب بنودها 
اتمنى ان يكون الشرح واضح

  
  تفضل استاذي الكريم انتظر التقييم تقييم الاستاذ لطلابه
و هذا الرابط الذي تمت منه الاضافة
https://social.msdn.microsoft.com/Forums...=vbgeneral


الملفات المرفقة
.rar   الاستاذ ابراهيم ايبو.rar (الحجم : 83.72 ك ب / التحميلات : 7)
الرد }}}
#3
السلام عليكم ورحمة الله وبركاته
اخي الكريم Asmarsou
اولا بارك الله فيك ولك 
ثانيا شكرا لك على الاطراء الجميل وهذا من ذوقك الرفيع
ثالثا كلنا نمر في معوقات برمجية بالرغم من أن الكود يكون قريبا منا لكننا نتوه احيانا عنه
واخيرا اقول ليس علم الاستاذ هو نهاية العلم بل هو جزء يسير منه وكل طالب علم مخلص يقينا سوف يتخطى ماتعلمه من اساتذته بفضل الله واجتهاده ومثابرته 
واعمال عقله وخزينته العلمية وهذا هو ايضا مبدئي وانت ياأخي asmarsou من المثابرين والمتابعين والمتفانين 
وادعو الله ان ينير لك طريقك البرمجي ونراك في مصاف المبرمجين ان شاء الله
سأعدل الكود حتر يناسب ماأنا بصدده
شكرا لك مرة أخرى

الان اصبح الكود على النحو التالي
كود :
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       For Each mainmenu As ToolStripMenuItem In Me.MenuStrip1.Items
           ' اسماء القوائم
           ListBox1.Items.Add(mainmenu.Text)

           For Each item As ToolStripItem In mainmenu.DropDownItems
               ' اسماء البنود في الوائم
               If item.Text = "" Then
                   item.Text = "-------------"
               End If
               ListBox2.Items.Add(item.Text)

               If TypeOf (item) Is ToolStripMenuItem Then
                   For Each menu As ToolStripItem In DirectCast(item, ToolStripMenuItem).DropDownItems
                     
                       ListBox3.Items.Add(menu.Text)
                   Next
               End If
           Next

       Next
   End Sub
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
#4
(07-08-22, 08:59 PM)ابراهيم ايبو كتب :
السلام عليكم ورحمة الله وبركاته
اخي الكريم Asmarsou
اولا بارك الله فيك ولك 
ثانيا شكرا لك على الاطراء الجميل وهذا من ذوقك الرفيع
ثالثا كلنا نمر في معوقات برمجية بالرغم من أن الكود يكون قريبا منا لكننا نتوه احيانا عنه
واخيرا اقول ليس علم الاستاذ هو نهاية العلم بل هو جزء يسير منه وكل طالب علم مخلص يقينا سوف يتخطى ماتعلمه من اساتذته بفضل الله واجتهاده ومثابرته 
واعمال عقله وخزينته العلمية وهذا هو ايضا مبدئي وانت ياأخي asmarsou من المثابرين والمتابعين والمتفانين 
وادعو الله ان ينير لك طريقك البرمجي ونراك في مصاف المبرمجين ان شاء الله
سأعدل الكود حتر يناسب ماأنا بصدده
شكرا لك مرة أخرى

الان اصبح الكود على النحو التالي
كود :
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       For Each mainmenu As ToolStripMenuItem In Me.MenuStrip1.Items
           ' اسماء القوائم
           ListBox1.Items.Add(mainmenu.Text)

           For Each item As ToolStripItem In mainmenu.DropDownItems
               ' اسماء البنود في الوائم
               If item.Text = "" Then
                   item.Text = "-------------"
               End If
               ListBox2.Items.Add(item.Text)

               If TypeOf (item) Is ToolStripMenuItem Then
                   For Each menu As ToolStripItem In DirectCast(item, ToolStripMenuItem).DropDownItems
                     
                       ListBox3.Items.Add(menu.Text)
                   Next
               End If
           Next

       Next
   End Sub
و فيك بارك الله استاذ

(07-08-22, 08:59 PM)ابراهيم ايبو كتب :
السلام عليكم ورحمة الله وبركاته
اخي الكريم Asmarsou
اولا بارك الله فيك ولك 
ثانيا شكرا لك على الاطراء الجميل وهذا من ذوقك الرفيع
ثالثا كلنا نمر في معوقات برمجية بالرغم من أن الكود يكون قريبا منا لكننا نتوه احيانا عنه
واخيرا اقول ليس علم الاستاذ هو نهاية العلم بل هو جزء يسير منه وكل طالب علم مخلص يقينا سوف يتخطى ماتعلمه من اساتذته بفضل الله واجتهاده ومثابرته 
واعمال عقله وخزينته العلمية وهذا هو ايضا مبدئي وانت ياأخي asmarsou من المثابرين والمتابعين والمتفانين 
وادعو الله ان ينير لك طريقك البرمجي ونراك في مصاف المبرمجين ان شاء الله
سأعدل الكود حتر يناسب ماأنا بصدده
شكرا لك مرة أخرى

الان اصبح الكود على النحو التالي
كود :
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       For Each mainmenu As ToolStripMenuItem In Me.MenuStrip1.Items
           ' اسماء القوائم
           ListBox1.Items.Add(mainmenu.Text)

           For Each item As ToolStripItem In mainmenu.DropDownItems
               ' اسماء البنود في الوائم
               If item.Text = "" Then
                   item.Text = "-------------"
               End If
               ListBox2.Items.Add(item.Text)

               If TypeOf (item) Is ToolStripMenuItem Then
                   For Each menu As ToolStripItem In DirectCast(item, ToolStripMenuItem).DropDownItems
                     
                       ListBox3.Items.Add(menu.Text)
                   Next
               End If
           Next

       Next
   End Sub
و فيك بارك الله استاذ
الرد }}}
#5
(07-08-22, 08:59 PM)ابراهيم ايبو كتب :
السلام عليكم ورحمة الله وبركاته
اخي الكريم Asmarsou
اولا بارك الله فيك ولك 
ثانيا شكرا لك على الاطراء الجميل وهذا من ذوقك الرفيع
ثالثا كلنا نمر في معوقات برمجية بالرغم من أن الكود يكون قريبا منا لكننا نتوه احيانا عنه
واخيرا اقول ليس علم الاستاذ هو نهاية العلم بل هو جزء يسير منه وكل طالب علم مخلص يقينا سوف يتخطى ماتعلمه من اساتذته بفضل الله واجتهاده ومثابرته 
واعمال عقله وخزينته العلمية وهذا هو ايضا مبدئي وانت ياأخي asmarsou من المثابرين والمتابعين والمتفانين 
وادعو الله ان ينير لك طريقك البرمجي ونراك في مصاف المبرمجين ان شاء الله
سأعدل الكود حتر يناسب ماأنا بصدده
شكرا لك مرة أخرى

الان اصبح الكود على النحو التالي
كود :
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       For Each mainmenu As ToolStripMenuItem In Me.MenuStrip1.Items
           ' اسماء القوائم
           ListBox1.Items.Add(mainmenu.Text)

           For Each item As ToolStripItem In mainmenu.DropDownItems
               ' اسماء البنود في الوائم
               If item.Text = "" Then
                   item.Text = "-------------"
               End If
               ListBox2.Items.Add(item.Text)

               If TypeOf (item) Is ToolStripMenuItem Then
                   For Each menu As ToolStripItem In DirectCast(item, ToolStripMenuItem).DropDownItems
                     
                       ListBox3.Items.Add(menu.Text)
                   Next
               End If
           Next

       Next
   End Sub


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

الجمالية في الكود التالي بإنه إمكانك إضافة القوائم الفرعية مهما كانت درجتها  :
كود :
              If TypeOf (item) Is ToolStripMenuItem Then
                  For Each menu As ToolStripItem In DirectCast(item, ToolStripMenuItem).DropDownItems
                   
                      ListBox3.Items.Add(menu.Text)
                  Next
              End If

ولكن بشرط أن تضيفها حلقة داخل حلقة ..  فكل حلقة تنزل درجة .

لكن لازم يكون هناك كود بإمكانه قراءة كل الفروع مهما كانت درجتها دون الحاجة لإضافة القوائم دون الحاجة للتعديل على الكود إضافة حلقة داخلية أخرى ..
مثل مبدأ شغل الشجرة  ما يُهمها هو مفتاح عنصر الأب لتضيف له إبن .. فمهما كانت درجته لا تشترط عليك تحديد إضافة حلقة جديدة لإضافته كأب أو إبن أو حفيد سوى الترتيب بالإضافة فقط.

..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: asmarsou , ابراهيم ايبو , مين , ahmed_king2023


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Bug [سؤال] قائمة ب اسماء برامج فك تشفير البرامج وقرائة السورسات Aymanr3b 0 308 06-09-23, 12:56 AM
آخر رد: Aymanr3b
  هل ممكن اجعل عناصر ال LISTBOX بشكل افقي ismaeel 0 381 01-05-23, 11:26 PM
آخر رد: ismaeel
  مشكلة فى اضافة عناصر فى الداتا جريد فيو خالد كامل1 14 1,630 16-02-23, 03:10 AM
آخر رد: خالد كامل1
  طباعة قائمة combobox الى ملف PDF Tajaldeen 2 591 14-02-23, 11:19 PM
آخر رد: estefsar
  اختيار عنصر معين من قائمة تتولد فيها ازار عددها متغير atefkhalf2004 16 1,168 22-01-23, 12:56 AM
آخر رد: atefkhalf2004
Exclamation [VB.NET] التعامل مع عناصر صفحة html من خلال WebView2 paypalet 2 851 26-09-22, 05:00 PM
آخر رد: Basil Abdallah
  طلب كود إضافة وأزالة البرنامج من قائمة بدء التشغيل سيد درويش 5 877 26-08-22, 12:03 PM
آخر رد: asmarsou
  [سؤال] كيفية حفظ عناصر في مجلد بحسب ترتيبها في الليست بوكس asmarsou 1 628 13-07-22, 06:42 PM
آخر رد: ابراهيم ايبو
  حفظ عناصر listbox في مستند نصي dasktop 1 669 08-05-22, 08:32 PM
آخر رد: سعود
  قائمة منسدلة بجزء من النص في مربع نص aftfm 12 2,574 19-04-22, 06:03 PM
آخر رد: atefkhalf2004

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


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