Назад Вперед Зміст

Валідація форми при кліку на кнопку

private void button1_Click(object sender, EventArgs e)
{
    // Перевірка заповненості форми
    if (textBox1.TextLength > 0 &&                // TextBox1 не порожній
        textBox2.TextLength > 0 &&                // TextBox2 не порожній
        (checkBox1.Checked || checkBox2.Checked) && // Вибрано хоча б один CheckBox
        (radioButton1.Checked || radioButton2.Checked) && // Вибрано один RadioButton
        comboBox1.SelectedIndex >= 0)             // В ComboBox вибрано елемент
    {
        // Дії при коректному заповненні форми
        ProcessFormData();
    }
    else
    {
        // Повідомлення про помилку заповнення
        MessageBox.Show("Будь ласка, заповніть усі обов'язкові поля форми!",
                       "Попередження",
                       MessageBoxButtons.OK,
                       MessageBoxIcon.Warning);
    }
}

Умови валідації форми

Покращений варіант коду

private void button1_Click(object sender, EventArgs e)
{
    if (IsFormValid())
    {
        ProcessFormData();
    }
    else
    {
        ShowValidationError();
    }
}

private bool IsFormValid()
{
    // Перевірка текстових полів
    if (string.IsNullOrWhiteSpace(textBox1.Text) return false;
    if (string.IsNullOrWhiteSpace(textBox2.Text)) return false;
    
    // Перевірка checkBox
    if (!checkBox1.Checked && !checkBox2.Checked) return false;
    
    // Перевірка radioButton
    if (!radioButton1.Checked && !radioButton2.Checked) return false;
    
    // Перевірка comboBox
    if (comboBox1.SelectedIndex <0) return false;
    
    return true;
}

private void ShowValidationError()
{
    StringBuilder errors = new StringBuilder();
    
    if (string.IsNullOrWhiteSpace(textBox1.Text))
        errors.AppendLine("- Заповніть поле TextBox1");
    if (string.IsNullOrWhiteSpace(textBox2.Text))
        errors.AppendLine("- Заповніть поле TextBox2");
    if (!checkBox1.Checked && !checkBox2.Checked)
        errors.AppendLine("- Виберіть хоча б один варіант у CheckBox");
    if (!radioButton1.Checked && !radioButton2.Checked)
        errors.AppendLine("- Виберіть один варіант у RadioButton");
    if (comboBox1.SelectedIndex < 0)
        errors.AppendLine("- Виберіть значення зі списку");

    MessageBox.Show("Виправте наступні помилки:\n" + errors.ToString(),
                   "Помилка заповнення форми",
                   MessageBoxButtons.OK,
                   MessageBoxIcon.Error);
}

Переваги покращеної версії:

Назад Вперед Зміст