Italian Cambiare il colore del testo nello spinner e struttura ad albero

ken87

Active Member
Licensed User
Longtime User
Buonasera,
E' possibile impostare alcuni elementi dello Spinner di colore nero e a il resto di colore blu?
Esempio

elemento 1 = nero
elemento 2 = nero
elemento 3 = nero
elemento 4 = blu
elemento 5 = blu


Inoltre esiste un controllo ad albero all'interno dello spinner?
Esempio
elemento 1
sotto elemento 1
sotto elemento 2
sotto elemento 3
elemento 2
sotto elemento 1
sotto elemento 2
sotto elemento 3
sotto elemento 4
elemento 3
elemento 4
sotto elemento 1

Grazie in anticipo
 

Star-Dust

Expert
Licensed User
Longtime User
Non è possibile questa personalizzazione nello spinner nativo di B4X.
Non so se usando JavaObject si possano accedere a altre proprietà che consentono una tale personalizzazione.

Io scegliere di realizzare uno spinner con la CustomView personalizzato
 

ken87

Active Member
Licensed User
Longtime User
Ciao,
Sai se esiste un CustomView personalizzato o in che modo si potrebbe realizzare?
Grazie mille
 

ken87

Active Member
Licensed User
Longtime User
ciao,
Ho trovato questo codice in vb net che carica nella combox equivalente allo spinner elementi di diverso colore? secondo te è possibile convertirlo in vba?
B4X:
Public Class Form1
    Private cb As New CCombobox With {.Parent = Me, .Location = New Point(10, 10)}
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        cb.Items.Add(New CComboboxItem("Item Number 1", Color.Green, Color.Yellow))
        cb.Items.Add(New CComboboxItem("Item Number 2", Color.Blue, Color.Red))
        cb.Items.Add(New CComboboxItem("Item Number 3", Color.Red, Color.Plum))
    End Sub
End Class


Class CCombobox : Inherits ComboBox

    Sub New()
        Me.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed
    End Sub

    Protected Overrides Sub OnDrawItem(e As DrawItemEventArgs)
        MyBase.OnDrawItem(e)
        Dim item As CComboboxItem = DirectCast(Me.Items(e.Index), CComboboxItem)
        Using ForeBrush As Brush = New SolidBrush(item.Forecolor)
            Using BackBrush As Brush = New SolidBrush(item.Backcolor)
                e.Graphics.FillRectangle(BackBrush, e.Bounds)
                e.Graphics.TranslateTransform(0, e.Bounds.Y)
                e.Graphics.DrawString(item.ToString, Me.Font, ForeBrush, 0, 0)
            End Using
        End Using
    End Sub
End Class





Class CComboboxItem

    Public Sub New(Value As Object, Color As Color, BackColor As Color)
        Me.Value = Value
        Me.Forecolor = Color
        Me.Backcolor = BackColor

    End Sub

    Public Property Value As Object = Nothing
    Public Property Forecolor As Color = Color.Black
    Public Property Backcolor As Color = Color.Black

    Public Overrides Function ToString() As String
        Return Value.ToString
    End Function

End Class
Allego lo screen screenshot

Grazie mille
 

Attachments

  • color.png
    color.png
    2.4 KB · Views: 204

Star-Dust

Expert
Licensed User
Longtime User
Non è possibile questa personalizzazione nello spinner nativo di B4X.
Non so se usando JavaObject si possano accedere a altre proprietà che consentono una tale personalizzazione.

Io scegliere di realizzare uno spinner con la CustomView personalizzato
Ti ho risposto sopra
 
Top