I'm sure there's a simple solution on this, but it escapes me. I have a form with three text boxes on it. Before the main code is run I want to make sure each text box has data in it. I've initialized "hasData" to be the variable that will decide if the code can move on or not. I evaluate hasData in a Do While loop but the code discovers there are text boxes without data and set hasData variable to "False". But then I'm in a continuous loop, the message box never goes away to allow you to enter text into the empty text boxes.
Thank you for your help.
Dim hasData As String
hasData = "False"
Do While hasData = "False"
If txtTechManName.Text.Trim = "" Or txtDirectory.Text.Trim = "" Or txtBxUnique.Text.Trim = "" Then
btnExecute.Enabled = False
hasData = "False"
MsgBox(" Please fill all text boxes on form ")
' this resulted in an endless loop of the msgBox. It didn't let me add text to the empty fields
Else
btnExecute.Enabled = True
hasData = "True"
End If
Loop
If (hasData = "True") Then
searchDir = txtDirectory.Text
Prefix = txtBxUnique.Text
Dim manualName = txtTechManName.Text
I moved my evaluating condition to the execute buttons on click event. There I run an if statement and when hasData is true run the function with the rest of the code.
Private Sub btnExecute_Click(sender As Object, e As EventArgs) Handles btnExecute.Click
Dim hasData As Boolean = False
If txtTechManName.Text.Trim = "" Or txtDirectory.Text.Trim = "" Or txtBxUnique.Text.Trim = "" Then
hasData = False
MsgBox(" Please fill all text boxes on form ")
If txtTechManName.Text.Trim = "" Then
txtTechManName.Focus()
ElseIf txtDirectory.Text.Trim = "" Then
txtDirectory.Focus()
ElseIf txtBxUnique.Text.Trim = "" Then
txtBxUnique.Focus()
End If
Else
hasData = True
runProgram()
End If
End Sub