Вы проверяете только первое TextBox
и первое ComboBox
. У вас есть оператор break
в конце обоих циклов foreach
, поэтому каждый цикл будет выполняться только один раз ... другими словами, вы проверяете только первый элемент в jtextboxes
и comboboxes
.
Кроме того, внутренний цикл написан таким образом, что код, скрывающий / показывающий формы, будет выполнен, как только вы встретите TextBox
со значением и ComboBox
со значением. Другой способ написать это может быть:
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, };
var comboboxes = new[] { comboBox1, comboBox2, comboBox3, comboBox4, comboBox5, comboBox6 };
if (jtextboxes.Any(tb => string.IsNullOrEmpty(tb.TextValue)) || comboboxes.Any(cb => cb.SelectedItem == null))
{
MetroFramework.MetroMessageBox.Show(this, "", "Please Enter All the Fields as Required", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
form3.Show();
this.Hide();
form3.Hide();
form3.ShowDialog();
this.Show();
}
}
Это отобразит окно сообщения, если какие-либо из TextBox
пусты, или если какое-либо из ComboBox
не имеет выбранного значения.