Pole TextBox,Button

0

Cześć wam
Posiadam aplikacje w WFA
Składa się z dwóch pól TextBox oraz przycisku Button.
Czy jest jakaś funkcja aby uaktywniała przycisku Button dopiero w momencie gdy będą te pola uzupełnione?

Próbowałem w taki sposób na przykładzie z jednym textbox ale dalej są problemy.


       if (string.IsNullOrWhiteSpace(textbox1.Text))
            {
                button1.Enabled = false;
            }
            else
            {
                button1.Enabled = true;
            }

Button przy włączeniu aplikacji z pustymi polami jest aktywny.
Bywa tak  że przycisk button wyłącza się i nawet przy uzupełnionych polach zostaje już nie aktywny.
1

Nie wiem czy to najlepsze rozwiazanie, ale w zdarzeniach dla textboxów - TextChanged sprawdzaj czy oba textboxy mają wpisaną wartosc i ustawiaj wtedy Enabled na buttonie

*W WPF można byłboy bindować właściować, która zwraca bool jeśli textboxy mają wpisaną wartosć

@Edit Tak na szybko:

private void textBox_TextChanged(object sender, EventArgs e)
{
       SetButtonState();
}

public void SetButtonState()
{
       if(textBox1.Text.Count() > 0 && textBox2.Text.Count() > 0)
       {
            button1.Enabled = true;
       }
       else
       {
            button1.Enabled = false;
       }
}

Button domyślnie ustaw Enabled na false

0

Niestety w tym przypadku zostaje przez cały czas nieaktywny.

0

Działa ale w takiej postaci
texbox1 i textbox2 uzupełniony wtedy dopiero się aktywuje button( Pozytywnie)
texbox2 i textbox1 uzupełniony (Button dalej pozostaje nieaktywny)

2

Możesz tak zrobić np.

     bool EnabledButton()
        {
            return textBox1.Text.Length > 0 && textBox2.Text.Length > 0;
        }

private void Form1_Load(object sender, EventArgs e) => button1.Enabled = EnabledButton();
private void textBox1_TextChanged(object sender, EventArgs e) => button1.Enabled = EnabledButton();
private void textBox2_TextChanged(object sender, EventArgs e) => button1.Enabled = EnabledButton();

1 użytkowników online, w tym zalogowanych: 0, gości: 1