Witam,
piszę mały program - bazę teleadresową. Mam okienko z pięcioma textBoxami. Po uzupełnieniu wszystkich danymi o prawidłowym formacie aktywuje się przycisk OK, który powinien jednocześnie być sfocusowany.
Robię to taką metodą:
private void sprawdzeniePoprawności()
{
if (licznik1 + licznik2 + licznik3 + licznik4 + licznik5 == 5)
{
buttonOk.Enabled = true;
buttonOk.Focus();
}
else
{
buttonOk.Enabled = false;
}
}
I to ładnie działa, tylko że:
- tej metody używam w takim na przykład miejscu (to drugie dla TextChanged event):
private bool CzyNumerTelefonuPoprawny(string nazwa)
{
return Regex.IsMatch(nazwa, @"^+\+[0-9]{2}-[0-9]{2}-[0-9]{7}$", RegexOptions.None);
}
private void poprawnośćNumeruTelefonu(object sender, EventArgs e)
{
licznik4 = Convert.ToInt32(CzyNumerTelefonuPoprawny(textBoxNumerTelefonu.Text));
pictureBoxNumerTelefonu.Image = imageList1.Images[licznik4];
if (Regex.IsMatch(textBoxNumerTelefonu.Text, "[^0-9-+]"))
{
Regex regex = new Regex("[^0-9-+]");
string output = regex.Replace(Clipboard.GetText(), "");
textBoxNumerTelefonu.Text = output;
}
sprawdzeniePoprawności();
//textBoxNumerTelefonu.Focus();
}
Tylko wtedy, kiedy otwieram jakiś rekord do edycji, to po wpisaniu w danego TextBoxa jednego znaku, tb traci focusa. Próbowałem temu zaradzić dodając tę ostatnią linijkę w powyższym kodzie (oczywiście bez komentarza) i działa, w sensie tb nie traci focusa, ale za to przycisk OK go nie ma.
Domyślam się, że coś robię źle, tylko nie mam pojęcia co. Jeśli ktoś ma jakieś sugestie, będę wdzięczny.