منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ListBix
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

الاخوة المشرفين والاعضاء المحترمين

سؤالي بخصوص ال ListBox 

هل يمكن تغير ال Selection Color  عند اختيار اي عنصر هل يمكن تغير اللون الازرق الى اي لون ؟

وهل يمكن مباعدة العناصر في القائمة عن بعض بالمسافة التي احددها ؟

صوره مرفقة
يمكنك فعل لك ولكن يتوجب عليك ان ترسم عناصر الليست بنفسك

غير الخاصية DrawMode الى OwnerDrawFixed
وكذلك الخاصية ItemHeight الى ارتفاع العنصر الذي تراه مناسب

عرف المتغير     SelectedColor للون العنصر المختار للبرنامج كله :

كود :
   Dim SelectedColor As Color = Color.Gold


الآن في حدث DrawItem اضف الكود التالي الي يقوم برسم العناصر 

كود :
   Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem

       Dim lst As ListBox = DirectCast(sender, ListBox)

       If e.Index < 0 Then Return

       If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
           e = New DrawItemEventArgs(e.Graphics,
                                     e.Font,
                                     e.Bounds,
                                     e.Index,
                                     e.State Xor DrawItemState.Selected,
                                     e.ForeColor,
                                     SelectedColor)
       End If


       e.DrawBackground()
        Dim str As String = lst.GetItemText(lst.Items(e.Index))

       Dim StrPoint As New Point
       Dim StrWidth = e.Graphics.MeasureString(str, e.Font).Width
       StrPoint.X = IIf(lst.RightToLeft = RightToLeft.Yes,
                        e.Bounds.X + e.Bounds.Width - StrWidth,
                        e.Bounds.X)

       StrPoint.Y = e.Bounds.Y + (e.Bounds.Height - e.Font.Height) * 0.5

       e.Graphics.DrawString(str,
                             e.Font,
                             New SolidBrush(lst.ForeColor),
                             StrPoint)



   End Sub
https://stackoverflow.com/a/3663856/14137871
الله يعطيك العافية استاذ انس محمود
طبق الاصل سلمت يداك