Button traci Focus na rzecz TextBoxa

0

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:

  1. 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.

1

Kilka kontrolek ma mieć jednocześnie fokus.. hmm... :)
Próbowałeś dać na button default? (bo, z tego co rozumiem, ktoś ma uzupełnić pole tekstowe i klepnąć enter, by zatwierdzić?)

0

Nie próbowałem... mam jedno okienko z textboxami z danymi (imię, adres itd.), między tb można przełączać się Tabem lub klikając je, nie trzeba wpisania danych potwierdzać Enterem.
Generalnie, w czasie wpisywania danych program sprawdza, czy wpisane dane zgodne są z założonym formatem. Jeśli tak, zmienia ikonkę obok tb. Jeśli wszystkie pola zawierają poprawne dane, aktywuje się przycisk ok, po kliknięciu którego podane dane zapisywane są do ListView. Potem taki rekord można edytować.

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