منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد (/showthread.php?tid=50400)



كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد - mmaalmesry - 08-10-24

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

أطلب منكم سؤال لو سمحتوا

باختصار كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد

شكرا لكم


RE: كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد - ميدو الفنان - 09-10-24

عليكم السلام ورحمة الله وبركاته
لكن لماذا لا تستعمل ListView لان ListView يدعم عرض عدة أعمدة
لا اعتقد ان Listbox يعرض عدة اعمدة بشكل مباشر
وانتظر الاخوة يفيدوك


RE: كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد - أبو خالد الشكري - 09-10-24

(08-10-24, 08:46 PM)mmaalmesry كتب : السلام عليكم ورحمة الله

أطلب منكم سؤال لو سمحتوا

باختصار كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد

شكرا لكم


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

نعم يمكن ذلك !

جرب الكود التالي :
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       ListBox1.DrawMode = DrawMode.OwnerDrawFixed
       ListBox1.Items.Add("سماء" & vbTab & "Sky")
       ListBox1.Items.Add("شمس" & vbTab & "Sun")
       ListBox1.Items.Add("قمر" & vbTab & "Moon")
   End Sub
   Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem
       If e.Index < 0 Then Exit Sub

       Dim text As String = ListBox1.Items(e.Index).ToString()
       Dim columns() As String = text.Split(vbTab)
       Dim brush As New SolidBrush(e.ForeColor)

       e.DrawBackground()
       e.Graphics.DrawString(columns(0), e.Font, brush, e.Bounds.Left, e.Bounds.Top)
       e.Graphics.DrawString(columns(1), e.Font, brush, e.Bounds.Left + 100, e.Bounds.Top)
       e.DrawFocusRectangle()

       brush.Dispose()
   End Sub



RE: كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد - Taha Okla - 09-10-24

(09-10-24, 08:55 AM)أبو خالد الشكري كتب : وعليكم السلام ورحمة الله وبركاته

نعم يمكن ذلك !

جرب الكود التالي :
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       ListBox1.DrawMode = DrawMode.OwnerDrawFixed
       ListBox1.Items.Add("سماء" & vbTab & "Sky")
       ListBox1.Items.Add("شمس" & vbTab & "Sun")
       ListBox1.Items.Add("قمر" & vbTab & "Moon")
   End Sub
   Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem
       If e.Index < 0 Then Exit Sub

       Dim text As String = ListBox1.Items(e.Index).ToString()
       Dim columns() As String = text.Split(vbTab)
       Dim brush As New SolidBrush(e.ForeColor)

       e.DrawBackground()
       e.Graphics.DrawString(columns(0), e.Font, brush, e.Bounds.Left, e.Bounds.Top)
       e.Graphics.DrawString(columns(1), e.Font, brush, e.Bounds.Left + 100, e.Bounds.Top)
       e.DrawFocusRectangle()

       brush.Dispose()
   End Sub

لو المسألة أنه فقط يشاهد هذه المعلومات ،، ممكن,,
ولكن لو أراد استخدامها ،، هل يستطيع الاعتماد على رقم المرجع لاعادة أي قيمة من سطر وعمود محددين؟!!!

الأفضل أن يعتمد على أداة أخرى ،، 
مثلاً GridView ..
أو ListView
كأدوات من نفس بيئة لغة البرمجة.. أفضل وأبسط له..
وبإمكانه الاعتماد على أدوات من مكتبات خارجية (وهذا ليس بالخيار الجيد - إلا إذا كانت كود مصدري (يمكنه من صنعها في مشروعه) وليست أداة جاهزة).


RE: كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد - mmaalmesry - 09-10-24

شكرا جزيلا جزاكم الله خيرا


RE: كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد - بوحمد - 15-10-24

في ردك اخي كانت هناك الجملة ( إلا إذا كانت كود مصدري (يمكنه من صنعها في مشروعه) ) كيف يتم ذلك


RE: كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد - Taha Okla - 15-10-24

من يعرف الأساسيات في OOP يعرف كيف يطور بعض الأدوات - 
وإن وجد كود مصدري في أحد المواقع سيعرف كيف يتعامل معه.

يوجد على اليوتيوب قونوات كثيرة - تشرح دورات مجانية عن الـ OOP في الـ VB.Net
إن أكملت مع أحدهم دورة من الدورات ستعرف الكثير  بخصوص هذا الموضوع وكيف تطور مشاريعك وتبسطها ..