Hilfe zur Formularprogrammierung

  • VB.NET

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

    Hilfe zur Formularprogrammierung

    Hallo zusammen,

    ​mag mir vielleicht jemand helfen? Ich steige da nicht durch und verzweifle langsam

    ​Zur Aufgabe:

    ​Nach Start: soll die TextBox String leer sein und die Schaltfläche den Text "Text setzen" anzeigen.
    ​Mit Klick auf die Schaltfläche ändert sich ihr Text in "Text rückwärts" und im Feld String steht "benutzerdefinierte Zahlenformatzeichenfolge"
    ​Text wird nach Klick auf Schaltfläche also rückwärts dargestellt.
    ​Schaltfläche fungiert als Schalter. Text wird mal normal und dann wieder rückwärts dargestellt.
    ​Mit Klick auf Schaltfläche Suchwort suchen wird im String nach Suchwort gesucht und die Fundstelle hervorgehoben.


    ​Mit meinem Code funktioniert leider nix wirklich...

    Vielen Dank für Eure Hilfe!

    Public Class frm_Textsuchen
    Private Sub frm_Textsuchen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    txt_String.Text = " "
    btn_String.Text = "Text setzen"
    End Sub
    Private Sub btn_String_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_String.Click
    btn_String.Text = "Text rückwärts"
    txt_String.Text = "Benutzerdefinierte Zahlenformatzeichenfolge"

    Dim s As String
    Dim t As String

    s = StrReverse(txt_String.Text)
    t = txt_String.Text

    If btn_String.Text = "Text setzen" Then
    txt_String.Text = "Benutzerdefinierte Zahlenformatzeichenfolge"
    Else
    txt_String.Text = s
    End If
    End Sub
    Private Sub btn_Suchwort_Click(sender As Object, e As EventArgs) Handles btn_Suchwort.Click
    Select Case True
    Case txt_Suchwort

    txt_Suchwort.Text = String.Compare(txt_String.Text).ToString

    Case optSuche.Checked
    txt_Suchwort.Text = String.Compare(txt_String.Text, CInt(txt_String)).ToString

    txt_String.Select(CInt(txt_String.Text))
    txt_String.HideSelection = False
    End Select
    End Sub
    End Class
    Ich Komme nicht direkt raus aus deine Fragestellung, kannst du es vielleicht etwas anders Fomulieren.
    Und Benutze bitte die VB-Code Funktion im Editor

    VB.NET-Quellcode

    1. Dim bla as String
    2. Sub Funktion
    3. end sub
    @Sarah_du: Dein StringButton wird mit bisherigem Code nur einmal funktionieren, da beim Klick darauf dessen Beschriftung mit dem Code btn_String.Text = "Text rückwärts" quasi für immer auf "Text rückwärts" gesetzt wird. Und nie wieder auf "Text setzen". Ist das gewollt? Wahrscheinlich nicht, sonst könntest Du den If-Block (If btn_String.Text = "Text setzen" Then) später weglassen. Zum anderen: Keine Ahnung, woher Du den Code für die SuFu hast, aber die scheint mir totaler Hunz zu sein. Krieg ich gar nicht zum Laufen.
    btw: Die Eigenschaften, die Du bei Form_Load für txt_String und btn_String setzt, kannst Du auch gleich im Designer für die beiden Steuerelemente festlegen.

    Dein Code funktional (aber k.A., ob Du es so willst):

    VB.NET-Quellcode

    1. Private Sub btn_String_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_String.Click
    2. If btn_String.Text = "Text setzen" Then
    3. btn_String.Text = "Text rückwärts"
    4. Else
    5. btn_String.Text = "Text setzen"
    6. txt_String.Text = txt_String.Text.Reverse.ToArray
    7. End If
    8. End Sub
    9. Private Sub btn_Suchwort_Click(sender As Object, e As EventArgs) Handles btn_Suchwort.Click
    10. Dim PositionOfSearchStringInText = txt_String.Text.IndexOf(txt_Suchwort.Text)
    11. If PositionOfSearchStringInText = -1 Then Exit Sub
    12. txt_String.Select(PositionOfSearchStringInText, txt_Suchwort.TextLength)
    13. txt_String.HideSelection = False
    14. End Sub


    EDIT: Welchen Sinn soll es ergeben, wenn in txt_String immer "benutzerdefinierte Zahlenformatzeichenfolge" stehen soll - bzw. die umgekehrte Zeichenfolge?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Sarah_du schrieb:

    ​Nach Start: soll die TextBox String leer sein und die Schaltfläche den Text "Text setzen" anzeigen.
    Falsche Herangehensweise.
    Trenne Daten und GUI.
    Der Text eines Contrrols ist nicht dafür vorgesehen, einen Zustand zu repräsentieren!
    Packe Deine Zustände in entsprechende Variablen und anhand dieser Variablen gestalte Deine GUI.
    Also (Pseudocode):

    Quellcode

    1. Start: Zustand = Zustand1
    2. Update: If Zustand = Zustand1 Then ...
    3. Button_Click: Zustand = Zustand2
    4. Update: If Zustand = Zustand2 Then ...
    5. usw.
    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!