Как проверить несколько TextBox с MessageBox при нажатии на «Далее»? Визуальная студия (c # Winforms) - PullRequest
1 голос
/ 09 июля 2019

У меня есть форма, которая включает 16 jtextboxes и 6 comboBoxes, и я хочу проверить все их сразу или по крайней мере все jtextboxes сразу и все 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 появляется только один раз?

1 Ответ

2 голосов
/ 09 июля 2019

Вы можете добавить оператор прерывания (break;) для выхода из цикла foreach после использования MessageBox.Show(). В противном случае вы можете использовать логическое значение, которое после отображения MessageBox превращается в true. Тогда показывать MessageBox только тогда, когда это false.

...