Falscher Event?

  • VB.NET

Es gibt 32 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Falscher Event?

    Hallo zusammen,

    kann folgendes Problem nicht lösen - hier erst mal der Code.

    VB.NET-Quellcode

    1. Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown
    2. If e.KeyCode = Keys.Enter Then
    3. WebBrowser1().Navigate(TextBox2.Text)
    4. End If
    5. Dim sText As String = Label5.Text & TextBox2.Text & vbCrLf
    6. Dim sCreate As New StreamWriter("H:\Panel\lf.txt", True)
    7. sCreate.Write(EncryptString(sText, False))
    8. sCreate.Close()
    9. End Sub

    In der lf.txt wird die Eingabe wie folgend protokolliert. (Also jede einzelne Eingabe wird aufgezeichnet)

    sterat - 15.03.2013 19:21:12w
    sterat - 15.03.2013 19:21:12ww
    sterat - 15.03.2013 19:21:12www
    sterat - 15.03.2013 19:21:12www.
    sterat - 15.03.2013 19:21:12www.g
    sterat - 15.03.2013 19:21:12www.go
    sterat - 15.03.2013 19:21:12www.goo
    sterat - 15.03.2013 19:21:12www.goog
    sterat - 15.03.2013 19:21:12www.googl
    sterat - 15.03.2013 19:21:12www.google
    sterat - 15.03.2013 19:21:12www.google.
    sterat - 15.03.2013 19:21:12www.google.d
    sterat - 15.03.2013 19:21:12www.google.de

    Wünschenswert wäre aber natürlich, dass nur einmal die gesamte Eingabe protokolliert wird. Mit dem Event Enter klappt es leider nicht. :(

    Habt Ihr eine Idee? Danke!
    dein code unter der if abfrage wird immer ausgeführt wenn du was in die textbox schreibst (auch wenn du nicht mit enter bestätigst), schreib alles in die if-abfrage, dann müsste es klappen

    btw. nutz bitte statt "vbCrLf" Environment.NewLine
    vbCrLf ist einer der Bösen Funktionen

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

    VB.NET-Quellcode

    1. Private Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
    2. If e.KeyCode = Keys.Enter Then
    3. WebBrowser1().Navigate(TextBox2.Text)
    4. End If
    5. Dim sText As String = Label5.Text & TextBox2.Text & vbCrLf
    6. Dim sCreate As New StreamWriter("H:\Panel\lf.txt", True)
    7. sCreate.Write(EncryptString(sText, False))
    8. sCreate.Close()
    9. End Sub


    Eigentlich müsst's so doch funktionieren? (ungetestet)
    @Higlav: das ist doch genau sein code.... :thumbdown:

    VB.NET-Quellcode

    1. If e.KeyCode = Keys.Enter Then
    2. WebBrowser1().Navigate(TextBox2.Text)
    3. Dim sText As String = Label5.Text & TextBox2.Text & Environment.NewLine
    4. Dim sCreate As New StreamWriter("H:\Panel\lf.txt", True)
    5. sCreate.Write(EncryptString(sText, False))
    6. sCreate.Close()
    7. End If
    Schau mal, ich meine einfach nur das:

    VB.NET-Quellcode

    1. Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown
    2. If e.KeyCode = Keys.Enter Then
    3. WebBrowser1().Navigate(TextBox2.Text)
    4. Dim sText As String = Label5.Text & TextBox2.Text & vbCrLf
    5. Dim sCreate As New StreamWriter("H:\Panel\lf.txt", True)
    6. sCreate.Write(EncryptString(sText, False))
    7. sCreate.Close()
    8. End If
    9. End Sub

    kai996 schrieb:

    @Higlav: das ist doch genau sein code.... :thumbdown:


    Nee ist es nicht (auch wenn ich 'nen Fehler gemacht habe - dazu später): Er sagte, er bekäme einen Fehler ("Das Objekt des Typs "System.EventArgs" kann nicht in Typ "System.Windows.Forms.KeyEventArgs" umgewandelt werden."). Also dachte ich, es liege an der Syntax.

    Mein Fehler: Er müsste nun aus dem Code alle Funktionen rausnehmen, die auf die System.Windows.Forms.KeyEventArgs angewiesen sind Ich hab aber auf den eigentlichen Code gar nicht geachtet :wacko: und deshalb würde der Code auch nicht funcktionieren. Eigentlich hätt' ich sein Code folgendermassen ändern sollen (ebenfalls ungetestet :whistling: :(

    VB.NET-Quellcode

    1. Private Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
    2. WebBrowser1().Navigate(TextBox2.Text)
    3. Dim sText As String = Label5.Text & TextBox2.Text & Environment.NewLine '<<-----### Danke übrigens für diesen Hinweis! :D
    4. Dim sCreate As New StreamWriter("H:\Panel\lf.txt", True)
    5. sCreate.Write(EncryptString(sText, False))
    6. sCreate.Close()
    7. End Sub