Pole TextBox,Button

M9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
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.

Kopiuj

       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.
nerdxg
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
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:

Kopiuj
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

M9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

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

M9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
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)

Kubuś Puchatek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 235
2

Możesz tak zrobić np.

Kopiuj
     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();

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.