简体   繁体   中英

How to enable button after all textboxes are not empty in c# winforms?

How can I make button property set to enabled=true after all my textboxes are not empty? I'm learning programming and my apps are simple.

I know how to enable this property when one of my textboxes have text but this is not the case.

Use case is that user need to put data in both textboxes and after that will be able to click btn. How in most simple way can I validate all form and then enable button?

There are just 2 tb: https://i.imgur.com/JUslNWE.png

You need to create a TextBox_TextChanged event and subscribe to all text boxes.

private void TextBox_TextChanged(object sender, EventArgs e)
{
    int notEmptyTextBoxCount = 0;
    int textBoxCount = 0;
    foreach (var item in Controls)
    {
        if (item is TextBox txtb)
        {
            textBoxCount++;
            if (txtb.Text != String.Empty)
                notEmptyTextBoxCount++;
        }
    }
    if (textBoxCount == notEmptyTextBoxCount)
        button.Enabled = true;
    else
        button.Enabled = false;
}

Thanks guys for all feedback.

I have managed to do this this way:

private void ValidateTextBoxes()
    {
        if (loginTextBox.Text.Length != 0 && passTextBox.Text.Length != 0)
        {
            generateHashBtn.Enabled = true;
        }
        else
        {
            generateHashBtn.Enabled = false;
        }
    }

    private void TextBox1_TextChanged(object sender, EventArgs e)
    {
        ValidateTextBoxes();
    }

    private void TextBox2_TextChanged(object sender, EventArgs e)
    {
        ValidateTextBoxes();
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM