Idealgewichtsrechner mit Ausgabe in 2. Form (VB.NET)

  • VB.NET

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

    Idealgewichtsrechner mit Ausgabe in 2. Form (VB.NET)

    Hallo zusammen, :)

    ich bin gerade dabei, einen Idealgewichtsrechner zu basteln, möchte aber die Ausgabe durch Klick auf einen Button auf eine 2. Form verlegen. Habe aber als Beginner keine Ahnung, wie das funktioniert. Kann mir bitte jemand helfen? Danke und Gruß,

    Jean.

    Hier wäre der bisherige Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
    3. System.EventArgs) _
    4. Handles MyBase.Load
    5. RadioButton1.Checked = True
    6. End Sub
    7. Private Sub Berechnen()
    8. Dim Gewicht As Single
    9. Dim Groesse As Single
    10. Dim Idealgewicht As Single
    11. Dim Faktor As Single = 0.9
    12. If RadioButton2.Checked = True Then Faktor = 0.85
    13. If Trim$(TextBox1.Text) <> "" Then
    14. Gewicht = CDec(TextBox1.Text)
    15. Else
    16. Gewicht = 0
    17. End If
    18. If Trim$(TextBox2.Text) <> "" Then
    19. Groesse = CDec(TextBox2.Text)
    20. Else
    21. Groesse = 0
    22. End If
    23. If Gewicht > 0 And Groesse > 0 Then
    24. Idealgewicht = CSng((Groesse - 100) * 0.9)
    25. Label1.Text() = "Ihr Idealgewicht: " & Idealgewicht & " kg" & " -" & _
    26. "Ihr Gewicht:" & Gewicht.ToString("0") & " kg"
    27. Select Case Gewicht - Idealgewicht
    28. Case Is < -0.5
    29. Label4.Text = "Sie haben Untergewicht"
    30. Case Is > 0.5
    31. Label4.Text = "Sie haben Übergewicht"
    32. Case Else
    33. Label4.Text = "Sie haben Normalgewicht"
    34. End Select
    35. Else
    36. Label1.Text() = "Ihr Wert: " & 0
    37. End If
    38. End Sub
    39. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As _
    40. System.EventArgs) Handles TextBox1.TextChanged
    41. Berechnen()
    42. End Sub
    43. Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As _
    44. System.EventArgs) Handles TextBox2.TextChanged
    45. Berechnen()
    46. End Sub
    47. Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As _
    48. System.EventArgs) Handles Label1.Click
    49. End Sub
    50. Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, _
    51. ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
    52. End Sub
    53. End Class


    Hab das Ganze gebaut mit 2 Radiobuttons (f. männl./weibl), 2 Textboxen (f. Gewicht und Größe) und 4 Labeln (Label 1 Als Ausgabe, 2+3 als Bezeichner, lbl4 Ausgabe für evtl. Gewichtsabweichung) - man müsste also die 2 Label zur Ausgabe auf ein 2. Form verlegen...
    1. Du erstellst eine neue Form namens Ergebniss
    2. Darauf ziehst du ein Label
    3. aufrufen und anzeigen geht mit

      VB.NET-Quellcode

      1. Dim Form As New Ergebniss()
      2. Form.Label1.Text = "Ihr Wert X"
      3. Form.Show()


    Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

    @Andy16823 Dazu muss aber das Control als Zugriffsmodifizierer ​Public haben, was ne schlechte Idee ist.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Dann das Control auf Private und im Konstruktor den Wert setzen etwa so in Ergbniss einfügen

    VB.NET-Quellcode

    1. Public Sub New(Wert As String)
    2. InitializeComponent()
    3. Label1.Text = Wert
    4. End Sub


    und aufrufen geht mit

    VB.NET-Quellcode

    1. Dim Form As New Ergebniss("BMI: X")
    2. Form.Show()
    Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

    Oder mit Properties arbeiten, was ich in fertigen Forms meistens für schöner halte. ;)
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ja das geht so in dem Form Ergebniss eine Eigenschaft anlegen

    VB.NET-Quellcode

    1. Private _BmiValue As String
    2. Public Property BmiValue() As String
    3. Get
    4. Return _BmiValue
    5. End Get
    6. Set(ByVal value As String)
    7. _BmiValue = value
    8. Label1.Text = value
    9. End Set
    10. End Property


    und so dann aufrufen

    VB.NET-Quellcode

    1. Dim Form As New Ergebniss()
    2. Form.BmiValue = "BMI "
    3. Form.Show()
    Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

    @Jean So könnte Deine Sub Berechnen() aussehen:

    VB.NET-Quellcode

    1. Private Sub Berechnen()
    2. Dim Gewicht As Single
    3. Dim Groesse As Single
    4. Dim Idealgewicht As Single
    5. Dim Faktor As Single = 0.899999976F
    6. If RadioButton2.Checked = True Then
    7. Faktor = 0.850000024F
    8. End If
    9. If String.IsNullOrEmpty(TextBox1.Text.Trim) OrElse String.IsNullOrEmpty(TextBox2.Text.Trim) Then
    10. Label1.Text = "Ihr Wert: 0"
    11. Return
    12. End If
    13. Gewicht = Single.Parse(TextBox1.Text)
    14. Groesse = Single.Parse(TextBox2.Text)
    15. Idealgewicht = ((Groesse - 100.0F) * Faktor)
    16. Label1.Text = String.Format("Ihr Idealgewicht: {0} kg - Ihr Gewicht: {1} kg", Idealgewicht, Gewicht)
    17. Select Case Gewicht - Idealgewicht
    18. Case Is < -0.5
    19. Label4.Text = "Sie haben Untergewicht"
    20. Case Is > 0.5
    21. Label4.Text = "Sie haben Übergewicht"
    22. Case Else
    23. Label4.Text = "Sie haben Normalgewicht"
    24. End Select
    25. End Sub

    Und
    Über- und Untergewicht an 500 g festzumachen scheint mir doch etwas sehr weit hergeholt.
    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!