TextBox =/= RichTextBox

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von magerquark.

    TextBox =/= RichTextBox

    Hallo,
    ich hab mich heute mal drangesetzt einen etwas erweiterten Taschenrechner
    zu Programmieren. Es gibt ja den Recht weit verbreiteten Code für einen Taschenrechner mit einer einfachen Textbox, der auch sehr leicht nachvollziehbar ist.

    VB.NET-Quellcode

    1. TextBox.Text = TextBox.Text + "Zahl"

    Wenn ich diesen aber nun auf meine RichTextBox übertragen will (diese wird benötigt um eine Art Verlauf zu ermöglichen), dann passiert im Praxistest überhaupt nichts.

    VB.NET-Quellcode

    1. RichTextBox.Text = RichTextBox.Text + "Zahl"

    Das es jedoch bei der Textbox sowie bei der RichTextBox die Eigenschaft .Text gibt leuchtet mir dieser Fehler nicht ganz ein. Könnt ihr mir nen kleinen Typ geben was ich falsch mache?
    Danke und lg, magerquark

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim a
    3. Dim b
    4. Dim c
    5. Dim d
    6. Dim Rechenart
    7. Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    8. RichTextBox.Text = RichTextBox.Text + "8"
    9. End Sub
    10. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    11. RichTextBox.Text = RichTextBox.Text + "3"
    12. End Sub
    13. Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    14. RichTextBox.Text = RichTextBox.Text + "9"
    15. End Sub
    16. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    17. RichTextBox.Text = RichTextBox.Text + "2"
    18. End Sub
    19. Private Sub Button0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    20. RichTextBox.Text = RichTextBox.Text + "0"
    21. End Sub
    22. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    23. RichTextBox.Text = RichTextBox.Text + 1
    24. End Sub
    25. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    26. RichTextBox.Text = RichTextBox.Text + "4"
    27. End Sub
    28. Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    29. RichTextBox.Text = RichTextBox.Text + "5"
    30. End Sub
    31. Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    32. RichTextBox.Text = RichTextBox.Text + "6"
    33. End Sub
    34. Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    35. RichTextBox.Text = RichTextBox.Text + "7"
    36. End Sub
    37. Private Sub ButtonCE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    38. RichTextBox.Text = ""
    39. End Sub
    40. Private Sub Buttonoff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonoff.Click
    41. End
    42. End Sub
    43. Private Sub ButtonKomma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    44. RichTextBox.Text = RichTextBox.Text + "."
    45. End Sub
    46. Private Sub ButtonWurzel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    47. RichTextBox.Text = Math.Sqrt(CDbl(RichTextBox.Text))
    48. End Sub
    49. Private Sub Buttonplus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    50. Rechenart = "Plus"
    51. a = RichTextBox.Text
    52. RichTextBox.Text = ""
    53. End Sub
    54. Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    55. Select Case True
    56. Case Rechenart = "Plus"
    57. RichTextBox.Text = CDbl(a) + CDbl(RichTextBox.Text)
    58. Case Rechenart = "Minus"
    59. RichTextBox.Text = CDbl(b) - CDbl(RichTextBox.Text)
    60. Case Rechenart = "Geteilt"
    61. RichTextBox.Text = CDbl(c) / CDbl(RichTextBox.Text)
    62. Case Rechenart = "Mal"
    63. RichTextBox.Text = CDbl(d) * CDbl(RichTextBox.Text)
    64. End Select
    65. End Sub
    66. Private Sub Buttonminus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    67. Rechenart = "Minus"
    68. b = RichTextBox.Text
    69. RichTextBox.Text = ""
    70. End Sub
    71. Private Sub Buttongeteilt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    72. Rechenart = "Geteilt"
    73. c = RichTextBox.Text
    74. RichTextBox.Text = ""
    75. End Sub
    76. Private Sub Buttonmal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    77. Rechenart = "Mal"
    78. d = RichTextBox.Text
    79. RichTextBox.Text = ""
    80. End Sub
    81. End Class

    zum Verständnis: Button10 ist der Gleichbutton!
    Der Fehler ist, dass einfach gar nichts passiert.

    PS: Der BBCode für Spoiler ist doch , funktioniert aber nicht.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „magerquark“ ()

    Wir haben ja jetzt diese schöne Diskussion über unschönen Stil. Das würde sehr gut passen:

    VB.NET-Quellcode

    1. Dim a
    2. Dim b
    3. Dim c
    4. Dim d
    5. Dim Rechenart

    So werden alle Variablen als Variant deklariert. Stichwort schlechter Stil.

    Bei dir sollen a, b, c, d Double sein und Rechenart ein String.

    VB.NET-Quellcode

    1. Dim a As Double
    2. Dim b As Double
    3. Dim c As Double
    4. Dim d As Double
    5. Dim Rechenart As String

    Allerdings musst du jetzt auf folgendes achten:

    VB.NET-Quellcode

    1. a = RichTextBox.Text


    Fehlermeldung müsste jetzt, wenn ich mich nicht irre "Ungültige Konvertierung des Typens String in Double" sein.
    Macht auch Sinn, da RichTextBox.Text ein String ist. Also konvertieren, wie du es weiter unten schon hast.

    VB.NET-Quellcode

    1. a = CDbl(RichTextBox.Text)

    Allerdings ist es sehr unsicher, da auch Zeichen in eine Textbox eingegeben werden können.

    Ich hoffe das hilft dir in dieser Beziehung :)

    PS: Für dein eigentliches Problem müsste .Append() oder & seinen Dienst tun.