Jak zignorować znak w konkretnych sytuacjach (C#)

0

W programie do uzupełniania danych w TextBox'ach znak ENTER jest znakiem potwierdzającym wprowadzone dane i powodującym przejście w kolejnego TextBoxa

     private void next_field(KeyEventArgs b, ref int f)
        {
                 if ((char)b.KeyCode == (char)Keys.Enter)
                    {
                        f++;
                        input_data.Clear();
                    }
        } 

zmienna f jest inkrementowana za każdym wciśnięciem entera, następnie switch wywołuje edycję odpowiedniego pola w odniesieniu od f. Niestety kiedy potwierdzam informację z MessageBoxa enterem czy kliknę któryś z buttonów Enterem zmienna ta również inkrementuje się powodując przejście o jeden TextBox za daleko. Jak mogę zignorować enter w tych przypadkach?

0

Pytanie jak masz podpięte to zdarzenie. Powinieneś mieć podpięte na każdym z TextBox'ów, a wygląda na to, że masz na formie.

0

W programie będzie jakieś 150 textboxów. Nie ma innego rozwiązania?

1

Można np. nie walczyć z powszechnie przyjętymi standardami odnośnie nawigacji w aplikacjach. Do przechodzenia między polami służy Tab, a nie Enter.

1
  1. jak bedzie 150 textboxow to zbierz je do listy i pozniej na calej liscie operuj.
  2. mozesz dodac wlasne zdarzenia do nich
  3. mozesz zrobic swojego wlasnego textboxa ktory ma odpowiednie zachowanie (to zrob jezeli chcesz by textbox zostal nietkniety)
0

Jasne, chyba zostane przy Tabie do przełączania :) w każdym razie dzięki za pomoc

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