السلام عليكم
الاخوة المشرفين والاعضاء المحترمين
سؤالي بخصوص ال 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
الله يعطيك العافية استاذ انس محمود
طبق الاصل سلمت يداك