2016-04-15 8 views
0

Ich möchte nur den Text in diesen Textfeldern in einen Notizblock schreiben.So prüfen Sie 4 Textboxen für Daten in VB .Net mit verschiedenen Möglichkeiten

Ich habe 4 Textfelder

1) TextBox1.Text

2) TextBox2.Text

3) Textbox3.Text

4) Textbox4.Text

Ich habe obligatorische Daten in Textbox1.Text und Textbox4.Text alle th e Zeit

Und ich habe 4 Optionen. wie

Option 1: Wenn TextBox2 und TextBox3, beide sind nicht leer

Option 2: Wenn TextBox2 leer, aber TextBox3 ist nicht leer

Option 3: Wenn Textbox2 ist nicht leer, aber Textbox3 ist leer

Option 4: Wenn beide TextBox2 und TextBox3 sind leer

My-Code

Dim Tags As String 
    If (Not String.IsNullOrWhiteSpace(Textbox2.Text)) Then 
     If (Not String.IsNullOrWhiteSpace(Textbox3.Text)) Then 
      Tags = String.Format("{0}: {1}, {2}, {3}{4}{4}", Textbox1.Text, Textbox2.Text, Textbox4.Text, Textbox3.Text, Environment.NewLine) 
      objWriter2.WriteLine(Tags) 
     ElseIf (String.IsNullOrWhiteSpace(Textbox2.Text)) Then 
      If (Not String.IsNullOrWhiteSpace(Textbox3.Text)) Then 
       Tags = String.Format("{0}, {2}, {3}{4}{4}", Textbox1.Text, Textbox2.Text, Textbox4.Text, Textbox3.Text, Environment.NewLine) 
       objWriter2.WriteLine(Tags) 
      End If 
     ElseIf (Not String.IsNullOrWhiteSpace(Textbox2.Text)) Then 
      If (String.IsNullOrWhiteSpace(Textbox3.Text)) Then 
       Tags = String.Format("{0}: {1}, {2}{4}{4}", Textbox1, Textbox2.Text, Textbox4.Text, Textbox3.Text, Environment.NewLine) 
       objWriter2.WriteLine(Tags) 
      End If 
     Else 
      objWriter2.WriteLine(Textbox1.Text + ", " + Textbox4.Text) 
     End If 
    End If 

ist, wie Sie einen Unterschied gibt es in meinem Code sehen können, wo Tags = String.Format(), wenn ich eine andere Option wählen .

Antwort

1

Eine Idee ist es, einen boolean-Array zu laden mit einem True/False je nachdem, ob jedes Textfeld einen Wert hat oder nicht, so wird dies in Ihrer Logik verwenden:

Dim boxData As Boolean() = {TextBox1.Text.Length > 0, TextBox2.Text.Length > 0, TextBox3.Text.Length > 0, TextBox4.Text.Length > 0} 

    If Not boxData(0) OrElse Not boxData(3) Then 
     Throw new Exception("Textbox1 and Textbox4 must contain some data") 
    ElseIf boxData(1) AndAlso boxData(2) Then 
     'option 1 
    ElseIf boxData(2) Then 
     'option 2 
    ElseIf boxData(1) Then 
     'option 3 
    Else 
     'option 4 
    End If 

Beachten Sie, dass die Array Null basiert so TextBox1 ist boxData(0) usw.

+0

es tut mir leid, aber ich will keine Nachricht Feld anzuzeigen ... wenn es Daten gibt oder nicht .... Ich möchte, dass es in eine Textdatei schreibt, entsprechend den Optionen, die ich in meiner Frage angegeben habe. – winnu

+0

Wenn sie obligatorisch sind und nichts darin ist, dann musst du etwas tun. Was Sie tun, liegt an Ihnen. Sie könnten stattdessen eine Ausnahme auslösen. Ich habe die Antwort entsprechend geändert. –

+0

Wo soll ich Objwriter.writeline() schreiben ??? nach dem Ende Wenn ??? und welchen Namen soll ich in Klammern setzen ??? boxData ??? – winnu

0

ich so etwas wie dies versuchen würde:

'set variables equal to textbox values 
Dim strText1 As String = TextBox1.Text 
Dim strText2 As String = TextBox2.Text 
Dim strText3 As String = TextBox3.Text 
Dim strText4 As String = TextBox4.Text 

'better option than If...Then because it doesn't go through all possibilities, 
'only goes until it finds one that is valid for use 
Select Case strText2 
    Case Is <> Nothing And strText3 <> Nothing 
     'option 1 
    Case is = Nothing And strText3 <> Nothing 
     'option 2 
    Case Is <> Nothing And strText3 = Nothing 
     'option 3 
    Case Else 
     'option 4 
End Select 
Verwandte Themen