veränderbare Labels

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    veränderbare Labels

    Moin Liebes Forum

    wie kann ich das schreiben wenn sich der Wert eines Labels verändert also höher als 1000 ist wie kann ich dann ein anders Label dadurch verändern

    das Label ist im mom auf Watt sol aber mW werden und nur duruch den Wert des anderen Labels wo 1000 steht soll dich das Label in W umwandeln sprich von mW auf Watt nur wie schreibe ich es sobald die Leistung über 1000 bzw der wert über 1000 ist soll das mW auf W umstellt werden Automatisch


    LG
    Bilder
    • Labelwert.JPG

      19,18 kB, 340×120, 71 mal angesehen
    • Labelwert 2.JPG

      22,69 kB, 699×88, 71 mal angesehen
    Wichtig Daten vom UI getrennt behandeln.

    ich geh davon aus, das du irgendwo den wert in einer Variable gespeichert hast der im Label angezeigt wird.

    1. Prüfen ob der wert >1000
    1.1 - Ja - Label1.Text = String.Concat(Wert / 1000 , "W")
    1.2 - Nein - Label1.Text = String.Concat(Wert, "mW")
    @Der Laie Mach Dir ne Klasse Leistung, die per Event das Label mit seinem Wert in Abhängigkeit des Schalters W / mW befüllt.
    Der Schalter W / mW muss dann natürlich in alle Leistungs-Instanzen reingereicht werden.
    Diese Klasse kannst Du dann mit Milliwatt oder Pferdestärken befüllen, die Ausgabe wäre dann immer korrekt. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Der Laie Mach Dir so ne Klasse:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class MyValue
    2. Private _Value As Double
    3. Private _Milli As Boolean
    4. Public MyLabel As Label
    5. Public Property Value As Double
    6. Get
    7. Return _Value
    8. End Get
    9. Set(value As Double)
    10. _Value = value
    11. Update()
    12. End Set
    13. End Property
    14. Public Property Milli As Boolean
    15. Get
    16. Return _Milli
    17. End Get
    18. Set(value As Boolean)
    19. _Milli = value
    20. Update()
    21. End Set
    22. End Property
    23. Public Sub Update()
    24. If Milli Then
    25. MyLabel.Text = String.Format("{0} mW", _Value * 1000)
    26. Else
    27. MyLabel.Text = String.Format("{0} W", _Value)
    28. End If
    29. End Sub
    30. End Class
    und ruf die in der Form so auf:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private value As MyValue
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. value = New MyValue
    5. value.MyLabel = Me.Label1
    6. value.Value = 1.234
    7. End Sub
    8. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    9. value.Milli = CheckBox1.Checked
    10. End Sub
    11. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Der Laie Mit der CheckBox wird Watt und Milliwatt umgeschaltet.
    Mach Dir ein neues Projekt.
    Form1 mit Label und CheckBox.
    Füg die Klasse MyValue hinzu und kopiere den Form-Code in die Form.
    Starte dieses Projekt und betätige die CheckBox.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    danke für die Antwort

    was ich eigentlich Wissen wollte ist wie ich es schreibe wenn sich der Labelwert über 1000 W sich erhöht soll automatisch von mW auf W umgestellt werden ohne äußerliche Einfuss nur mit code sprich alles was bis >1000 Watt soll das Label in mW anzeigen und alles was über 1000 W ist soll das label mit in W anzeigen aber über Code gesteuert

    LG
    @Der Laie Ich mag keine moving Targets.
    Da musst Du mit nem If abfragen, ob die Grenze überschritten ist und das Milli-Flag entsprechend setzen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!