单击“如何使用MessageBox验证多个文本框”;下一个;?visual studio(c#Winforms)
我有一个表单,它包含16个单击“如何使用MessageBox验证多个文本框”;下一个;?visual studio(c#Winforms),c#,winforms,validation,messagebox,C#,Winforms,Validation,Messagebox,我有一个表单,它包含16个jtextboxs和6个comboBoxes,我想一次验证所有这些,或者至少一次验证所有jtextboxs和所有comboBoxes。我已经这样做了,但问题是我使用了MessageBox作为对它们的验证,并且在单击“确定”或“取消”后,MessageBox会继续显示 这是我的密码: private void bunifuFlatButton1_Click(object sender, EventArgs e) { userform3 form3 = new user
jtextboxs
和6个comboBoxes
,我想一次验证所有这些,或者至少一次验证所有jtextboxs
和所有comboBoxes
。我已经这样做了,但问题是我使用了MessageBox
作为对它们的验证,并且在单击“确定”或“取消”后,MessageBox
会继续显示
这是我的密码:
private void bunifuFlatButton1_Click(object sender, EventArgs e) {
userform3 form3 = new userform3();
var jtextboxes = new[] {
jTextBox3, jTextBox4, jTextBox5, jTextBox6, jTextBox7, jTextBox8, jTextBox9, jTextBox10, jTextBox11, jTextBox12, jTextBox13, jTextBox14, jTextBox15, jTextBox16
};
var comboboxes = new[] {
comboBox1, comboBox2, comboBox3, comboBox4, comboBox5, comboBox6
};
foreach(var jbox in jtextboxes) {
foreach(var combo in comboboxes) {
if (string.IsNullOrWhiteSpace(jbox.TextValue) && string.IsNullOrWhiteSpace(combo.Text)) {
MessageBox.Show("some fields are empty");
} else {
form3.Show();
}
}
有没有一种解决方案可以使
MessageBox
只显示一次?一旦使用MessageBox.Show()
,您可以添加一个中断语句(break;
)来中断foreach
循环。否则,您可以使用一个布尔值,一旦显示消息框
,它将变为真
。然后,仅当消息框为false时才显示该消息框
当您循环时,似乎每次遇到空的jbox时都会显示该消息框。另一种方法是声明bool ShowMessage=false并遍历所有这些消息。如果发现其中任何一个为空,则在循环中将布尔值设置为true。然后,当循环结束时,if(ShowMessage==true)显示MessageBox。你能在留言板后面回来吗?只有当ShowMessage显示为false时,您才会显示表单。