Pole TextBox,Button

Pole TextBox,Button
M9
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 5 lat
  • 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:około 9 lat
  • Ostatnio:prawie 5 lat
  • 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

edytowany 1x, ostatnio: nerdxg
M9
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:12
0

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

nerdxg
Próbowałeś mojego kodu w testowym projekcie? Bo u mnie działa i spróbuj zrobić analogicznie. Ewentualnie dodaj więcej swojego kodu
M9
Użyłem Twojego pomysłu tyle że dodałem opcje do texbox1 textbox1.Enabled = !string.IsNullOrWhiteSpace(textbox2.Text);
M9
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 5 lat
  • 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:ponad 7 lat
  • Ostatnio:6 miesięcy
  • 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();


Lubię miodek :)

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.