我有一个将txtbox写入.txt文件的程序,在填写所有文本框并选中所有复选框之前,我不希望能够“生成日志条目”。我可以正确弹出错误提供程序,但是我需要在代码中实现该错误提供程序,以便它与复选框的工作方式相同(必须选中所有复选框,然后才能生成日志条目)。
'Aircraft make/model textbox cannot be blank
If Me.TextBox4.Text = "" Then
ErrorProvider1.SetError(TextBox4, "Cannot be blank")
Else
Me.ErrorProvider1.SetError(Me.TextBox4, "")
End If
'N-number textbox cannot be blank
If Me.TextBox3.Text = "" Then
ErrorProvider1.SetError(TextBox3, "Cannot be blank")
Else
Me.ErrorProvider1.SetError(Me.TextBox3, "")
End If
'If all checkboxes are checked then no error is shown; if a single checkbox is not check, errorprovider shown
If CheckBox1.Checked And CheckBox2.Checked And CheckBox3.Checked And CheckBox4.Checked And CheckBox5.Checked And CheckBox6.Checked And CheckBox7.Checked Then
ErrorProvider1.SetError(Button2, "")
Dim FILE_NAME As String = "C:\Users\Blake\Documents\test2.txt" 'Sends information to test2.txt
If System.IO.File.Exists(FILE_NAME) = True Then
Dim objWriter As New System.IO.StreamWriter(FILE_NAME)
objWriter.Write("Aircraft Make & Model: " & TextBox4.Text & ", N-number: " & TextBox3.Text)
objWriter.Write("
Gascolator Removed & Inspected in accordance with FAA approved maintenance manual")
objWriter.Write("
Signature _____________________________")
objWriter.Write(" " & DateTime.Now) 'Displays current date and time
objWriter.Close()
MsgBox("Text Written To File")
Else
MsgBox("File Does Not Exist")
End If
Else ErrorProvider1.SetError(Button2, "All boxes must be checked")
End If
我尝试移动
Me.ErrorProvider1.SetError(Me.TextBox4, "")
End If
但是在该代码部分中不允许有多个“ If”语句。请在此处输入图片描述
Doesn't allow text to be written to file bc/ txtboxes are not checked
答案 0 :(得分:0)
尝试像这样重组代码
iso_c_binding
答案 1 :(得分:0)
虽然您最终可以使用此方法,但我建议使用另一种方法。
有无数种方法可以做到这一点。我只是禁用“ Generate Log”按钮,直到用户检查并填满所有内容。这样可以避免您提到的大多数问题,但是您不会收到我在代码中读到的错误消息,因此,如果它们很重要,则您将无法以这种方式工作。
这是一个代码片段,可以完成我刚才所说的事情:
'Check if the user is checking boxes
Private Sub Checkboxes_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged, CheckBox5.CheckedChanged, CheckBox6.CheckedChanged, CheckBox7.CheckedChanged
UpdateGenerateLogButtonEnabled()
End Sub
'Check if the user is writing text
Private Sub TextBoxes_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged
UpdateGenerateLogButtonEnabled()
End Sub
'Manage the GenerateLog button Enabled state
Private Sub UpdateGenerateLogButtonEnabled()
GenerateLogBookButton.Enabled = CheckBox1.Checked AndAlso CheckBox2.Checked AndAlso CheckBox3.Checked AndAlso CheckBox4.Checked AndAlso CheckBox5.Checked AndAlso CheckBox6.Checked AndAlso CheckBox7.Checked AndAlso Not TextBox1.Text = "" AndAlso Not TextBox2.Text = ""
End Sub
正如我所说,有很多方法可以验证这种代码。如果您需要错误消息,则需要另一条错误消息。无论哪种方式,玩得开心!