Textbox in Zwischenablage Der Wert darf nicht NULL sein.

  • VB.NET
  • .NET (FX) 4.0

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    Textbox in Zwischenablage Der Wert darf nicht NULL sein.

    Hi ich nutze aktuell folgenden Code um den Text einer Textbox mit einem button in die zwischenablage zu kopieren

    VB.NET-Quellcode

    1. Clipboard.SetText(Me.TextBox1.Text)


    Nun ist es so das der text bevor er in der textbox landet erstmal mit einem anderen button genereirt wird solange das nicht passiert ist
    kommt die Fehlermeldung das der wert nicht null sein darf wie bekomme ich das nun hin das keine fehlermeldung erscheint darfür eine msgbox

    Danke für hilfreiche vorschläge im vorraus

    Entweder du machst eine If Abfrage und prüfst vorher ob etwas enthalten ist oder du machst es mit Try-Catch.

    IfAbfrage (einzeilig)

    VB.NET-Quellcode

    1. If textbox1.textlength > 0 then Clipboard.SetText(Me.TextBox1.Text) else 'Msgbox


    Try-Catch:

    VB.NET-Quellcode

    1. Try
    2. Clipboard.SetText(Me.TextBox1.Text)
    3. Catch
    4. MsgBox("Dein Text")
    5. End Try



    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „Sneeze“ ()

    @bigbase Schau dir mal das Thema mit If/ElseIf genau an. Das brauchst du immer wieder bzw. permanent.

    If(txt.text <> "") Then
    Clipboard.SetText(txt.Text)
    Else
    MessageBox.Show("Text leer")
    EndIf

    @Sneeze Mit nem Try/Catch würde ich das nicht abfangen. Kleiner Tipp: Je mehr try/catch du in deinem Code hast, desto schlechter ist er. Programmiere so, das da keine Fehler auftreten können. Hierzu braucht man wiederum if/ElsIf und so.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    mrMo schrieb:

    @bigbase Schau dir mal das Thema mit If/ElseIf genau an. Das brauchst du immer wieder bzw. permanent.

    If(txt.text <> "") Then
    Clipboard.SetText(txt.Text)
    Else
    MessageBox.Show("Text leer")
    EndIf

    @Sneeze Mit nem Try/Catch würde ich das nicht abfangen. Kleiner Tipp: Je mehr try/catch du in deinem Code hast, desto schlechter ist er. Programmiere so, das da keine Fehler auftreten können. Hierzu braucht man wiederum if/ElsIf und so.




    Mit der if funktion verschwindet ja der fehler nicht und hier geht es nicht darum ob eine txtdatei leer ist sondern ob eine textbox leer ist und If Textbox1.Text = ("") hab ich versucht das geht nicht

    Die try methode funktioniert danke
    Nimm das was @mrMo geschrieben hat und ersetze txt.Text mit Me.Textbox1.Text, sonst keine Änderung. Wie du auf eine Datei kommst ist mir unklar, zumal Dateizugriffe komplett anders Funktionieren (vermutlich wegen dem txt?). If/Else/ElseIf ist Try/Catch vorzuziehen, da Exceptions nen ziemlicher Performancefresser sein können.
    Danke werde ich gleich versuchen.

    VB.NET-Quellcode

    1. ​Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. If (Me.TextBox1.Text <> "") Then
    3. Clipboard.SetText(Me.TextBox1.Text)
    4. Else
    5. MsgBox("Das Feld ist Leer", vbOKOnly, "Fehler!")
    6. End If
    7. End Sub
    8. End Class


    Läuft Danke an alle
    Ich hätte von vorne herein schon das Kopieren in die Zwischenablage unterbunden, wenn die TextBox leer ist. Beispiel:

    VB.NET-Quellcode

    1. Private Sub ContentTextBox_TextChanged(sender As Object, e As EventArgs) Handles ContentTextBox.TextChanged
    2. Me.CopyButton.Enabled = Me.ContentTextBox.Text.Trim.Length > 0
    3. End Sub
    4. Private Sub CopyButton_Click(sender As Object, e As EventArgs) Handles CopyButton.Click
    5. Clipboard.SetText(Me.ContentTextBox.Text)
    6. End Sub

    mrMo schrieb:


    @Sneeze Mit nem Try/Catch würde ich das nicht abfangen. Kleiner Tipp: Je mehr try/catch du in deinem Code hast, desto schlechter ist er. Programmiere so, das da keine Fehler auftreten können. Hierzu braucht man wiederum if/ElsIf und so.


    Ich vermeide Try-Catch auch so gut es geht, manchmal ist es aber verführerisch einfach :D (ich nutze es oft um mehrere Fehler zur Laufzeit zu erfassen und dann alle nach und nach zu behandeln).

    Würde eine If-Abfrage auch immer vorziehen - aber das von xtts02 (ungetestet) sieht auch gut aus.

    bigbase schrieb:

    Mit der if funktion verschwindet ja der fehler nicht und hier geht es nicht darum ob eine txtdatei leer ist sondern ob eine textbox leer ist (...)


    txt hießt in meinem Beispiel die Textbox. Daher stand in meinem Code auch txt.Text. Weiß nicht wie du darauf kommst das ich eine Textdatei prüfe ;)

    Das habe ich im übrigen mit Absicht so gemacht. Denn den Code sollst den nicht einfach nur kopieren, sondern verstehen um ihn zu nutzen zu können.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

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