Eigenes User Control: Property als DropDown - 2024

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Haudruferzappeltnoch.

    Eigenes User Control: Property als DropDown - 2024

    Moin!

    ich knüpfe an ein Posting aus 2011 an - Eingenes User Control: Property als DropDown

    Ich möchte eine Eigenschaft über eine Klappliste in einem UserControl auswählbar machen.

    Im Gegensatz von 2011 möchte ich die Genauigkeit von Werten einbauen und diese sollte wie folgt aussehen:

    0
    0.0
    0.00
    0.000
    ...

    Aber der Weg über ENUM scheitert ja, weil Zahlenwerte nicht zulässig sind und in Anführungszeichen zu schreiben geht auch nicht.

    Hat einer eine Idee, wie es dennoch geht??

    Gruß Jan
    Moin!

    ich glaube irgendwie liegt ein Missverständnis vor.

    Ich will in dem Usercontrol keine Auswahl haben sondern eine Properties - wie hier realisieren.



    Hier hätte ich gerne eine Auswahlliste.

    Alternativ könne ich auch eine Integer-Properties realisieren - aber dann sollte begrenzt werden welche Werte zulässig sind.

    Jan
    Das nennt sich Format und wird normalerweise als String angegeben.

    Gugge hier im Cellstyle eines DGVs z.B.:

    Heißt muss man eintippen.
    Im Code isses dan sowas:
    DataGridViewCellStyle7.Format = "N1"
    Dabei verarbeitet die Klasse dann welche Formate zulässig sind und welche nicht.
    Du kannst auch selbst ein Enum festlegen und dann entsprechend die Strings je nach Auswahl zuordnen.

    Hier nutze ich das Prinzip in einem Custom DateTimePicker (der mich Tag und Uhrzeit auswählen lässt). Wobei es hier schon direkt ein passendes Enum gibt (das mag bei den Gleitkommazahl-CellStyle anders sein)
    Es gibt voreingestellte über die Eigenschaft Format (das ist über das Enum DateTimePickerFormat realisiert, dort gibt es dann entsprechend das DropDown-Menü) und frei eintippbare über die Eigenschaft CustomFormat.

    VB.NET-Quellcode

    1. Private _CustomFormat As String
    2. Private _Format As DateTimePickerFormat
    3. <Category("Darstellung")>
    4. <Description("Gibt Formatierung an die untergeordneten Elemente")>
    5. Public Property Format As DateTimePickerFormat
    6. Get
    7. Return _Format
    8. End Get
    9. Set
    10. _Format = Value
    11. Select Case Value
    12. Case DateTimePickerFormat.Long
    13. dtpDate.CustomFormat = "dd.MM.yyyy"
    14. dtpTime.CustomFormat = "HH:mm:ss"
    15. Case DateTimePickerFormat.Short
    16. dtpDate.CustomFormat = "dd.MM.yy"
    17. dtpTime.CustomFormat = "HH:mm"
    18. Case DateTimePickerFormat.Time
    19. dtpDate.CustomFormat = "dd.MM.yy"
    20. dtpTime.CustomFormat = "HH:mm"
    21. Case DateTimePickerFormat.Custom
    22. SetCustomFormat()
    23. End Select
    24. End Set
    25. End Property
    26. <Category("Verhalten")>
    27. <Description("Die benutzerdefinierte Zeichenfolge, mit der das im Steuerelement angezeigte Datum und die Uhrzeit formatiert werden.")>
    28. Public Property CustomFormat As String
    29. Get
    30. Return _CustomFormat
    31. End Get
    32. Set
    33. _CustomFormat = Value
    34. SetCustomFormat()
    35. End Set
    36. End Property
    37. Private Sub SetCustomFormat()
    38. If _CustomFormat Is Nothing Then Exit Sub
    39. Dim FormatsDateAndTime = _CustomFormat.Split
    40. dtpDate.CustomFormat = FormatsDateAndTime(0)
    41. dtpTime.CustomFormat = FormatsDateAndTime(1)
    42. End Sub