2010-02-14 10 views

Odpowiedz

3

chcesz uniemożliwić wejście, które jest niedozwolone lub sprawdzania poprawności danych wejściowych, zanim można postępować?

Pierwszy z nich może wprowadzić użytkowników w błąd po naciśnięciu klawiszy, ale nic się nie dzieje. Zazwyczaj lepiej jest pokazywać ich klawisze, ale wyświetlać ostrzeżenie, że dane wejściowe są obecnie nieważne. Prawdopodobnie jest również dość skomplikowana konfiguracja maskowania wyrażenia regularnego adresu e-mail na przykład.

Spójrz na ErrorProvider, aby umożliwić użytkownikowi wpisanie tego, co chce, ale wyświetlanie ostrzeżeń podczas pisania.

Po pierwsze sugestie dotyczące pola tekstowego, które zezwala tylko na liczby, można również rozważyć wydanie NumericUpDown.

+1

Odpowiednio zaprojektowany interfejs użytkownika powinien pozostawiać żadnych wątpliwości, dlaczego ich tekst nie został wpisany. Pracuję w zespole programistycznym zajmującym się oprogramowaniem Medical Billing dla osób, które nigdy wcześniej nie korzystały z komputerów, a nawet dostają informację, dlaczego listy nie trafią do pola numeru SSN lub numeru ubezpieczenia. –

+0

Głównie używałbym sprawdzania danych wejściowych, zapobiegania czasami tylko w takich przypadkach jak SSN i ​​wyszukiwanie przez id itp. – eomeroff

0

Użyj pola tekstowego Maska i przypisz MasktextboxId.Mask.

Jeśli u użyć tekstowe potem trzeba napisać wyrażenie regularne dla to

0

sterowania nacisnąć przycisk zdarzeń użytkownika w celu zamaskowania wejścia, nie dopuszczając żadnych niepotrzebnych znaków.

Aby zezwolić tylko liczby z miejscami po przecinku:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     // allows 0-9, backspace, and decimal 
     if (((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 46)) 
     { 
      e.Handled = true; 
      return; 
     } 

     // checks to make sure only 1 decimal is allowed 
     if (e.KeyChar == 46) 
     { 
      if ((sender as TextBox).Text.IndexOf(e.KeyChar) != -1) 
       e.Handled = true; 
     } 
    } 

Aby zezwolić na wartości tylko numery telefonów:

private void txtPhone_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar >= '0' && e.KeyChar <= '9') return; 
    if (e.KeyChar == '+' || e.KeyChar == '-') return; 
    if (e.KeyChar == 8) return; 
    e.Handled = true; 

} 
Powiązane problemy