MessageBox if Abfrage

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von klyer.

    MessageBox if Abfrage

    Hallo,

    in meinem Programm möchte ich Textfelder überprüfen und wenn alle leer sind, soll eine Messagebox angezeigt werden welche OK und Abbrechen zeigt. Wenn alle Felder leer sind dann soll die Messagebox angezeigtwerden. Wenn eins gefüllt ist, dann nicht und Else Code wird verarbeitet.

    Im Moment ist es aber so, dass wenn nichts dann kommt die MessageBox und tut ihr Ding wenn aber eins gefüllt ist wird der Code ausgeführt und die Messagebox kommt trotzdem.


    Mein Code dazu:

    VB.NET-Quellcode

    1. Dim dr As DialogResult
    2. dr = MessageBox.Show("Es sind keine Daten zum übertragen eingegeben. Trotzdem Fortfahren?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
    3. If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" And TextBox4.Text = "" And TextBox5.Text = "" Then
    4. If dr = DialogResult.OK Then
    5. Form1.Show()
    6. End If
    7. Else
    8. ...mein Code ...
    9. End If


    Edit: Sorry aber der Quellcode lässt dich leider gerade nicht anders formatieren.
    Edit by der_Kurt: Quellcode formatiert

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „der_Kurt“ ()

    Du rufst die MessageBox vor der Abfrage auf, sollte aber erst nach der Abfrage ausgelöst werden.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" And TextBox4.Text = "" And TextBox5.Text = "" Then
    3. Dim dr As DialogResult
    4. dr = MessageBox.Show("Es sind keine Daten zum übertragen eingegeben. Trotzdem Fortfahren?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
    5. End If
    6. End Sub


    mfG

    Derfuhr
    Hier ein kleiner Ausschnitt wie man MessageBoxResult verwendet:

    VB.NET-Quellcode

    1. Dim result = MessageBox.Show("message", "caption", MessageBoxButtons.YesNoCancel)
    2. If result = DialogResult.Cancel Then
    3. MessageBox.Show("Cancel pressed")
    4. ElseIf result = DialogResult.No Then
    5. MessageBox.Show("No pressed")
    6. ElseIf result = DialogResult.Yes Then
    7. MessageBox.Show("Yes pressed")
    8. End If


    bzw. dass ganze kannst einfach in nen IF-Bereich haun.
    Falls dies nicht deine frage war, sry, jedoch verwende bitte richtig das VB-Tag.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    @ der_Kurt - vielen Dank.

    Eigentlich komme ich nur nicht hinter die Logik wie ich das vom Code her richtig positioniere. Die MessageBox soll ja nur ein Teil meiner If Abfrage sein. Also wenn alle Felder leer dann kommt die Messagebox und zeigt ein OK oder ein Abbrechen an. Wenn OK dann Form1.show. Abbrechen funktioniert in dem Fall sowieso. Wenn ich nun aber ein Feld beschreibe kommt trotzdem die Meldung und wenn ich auf OK klicke wird mein nachfolgender Code ausgeführt. Ich komme nur nicht dahinter wie ich das verhindere...
    Hab ich in Post#3 erläutert.

    VB.NET-Quellcode

    1. If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" And TextBox4.Text = "" And TextBox5.Text = "" Then
    2. Dim dr As DialogResult
    3. dr = MessageBox.Show("Es sind keine Daten zum übertragen eingegeben. Trotzdem Fortfahren?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
    4. If dr = DialogResult.OK Then
    5. Form1.Show()
    6. End If
    7. Else
    8. 'dein code
    9. End If


    Da dies vor der Abfrage steht wird es vor der Abfrage ausgeführt!

    VB.NET-Quellcode

    1. dr = MessageBox.Show("Es sind keine Daten zum übertragen eingegeben.
    2. Trotzdem Fortfahren?", "", MessageBoxButtons.OKCancel,
    3. MessageBoxIcon.Question)

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. If Me.TextBox1.Text = "" And Me.TextBox1.Text = "" Then
    3. If MessageBox.Show("Keine Daten", "Achtung", MessageBoxButtons.OKCancel) = Windows.Forms.DialogResult.Cancel Then
    4. Exit Sub
    5. Else
    6. TransmitData()
    7. End If
    8. Else
    9. TransmitData()
    10. End If
    11. End Sub
    12. Private Sub TransmitData()
    13. MessageBox.Show("Daten übertragen")
    14. End Sub


    So kannste das lösen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    Derfuhr schrieb:

    Hab ich in Post#3 erläutert.

    VB.NET-Quellcode

    1. If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" And TextBox4.Text = "" And TextBox5.Text = "" Then
    2. Dim dr As DialogResult
    3. dr = MessageBox.Show("Es sind keine Daten zum übertragen eingegeben. Trotzdem Fortfahren?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
    4. If dr = DialogResult.OK Then
    5. Form1.Show()
    6. End If
    7. Else
    8. 'dein code
    9. End If


    Da dies vor der Abfrage steht wird es vor der Abfrage ausgeführt!

    VB.NET-Quellcode

    1. dr = MessageBox.Show("Es sind keine Daten zum übertragen eingegeben.
    2. Trotzdem Fortfahren?", "", MessageBoxButtons.OKCancel,
    3. MessageBoxIcon.Question)
    Danke! So funktioniert es wie es soll.