liczby w textbox

0

w jaki sposób zablokować możliwość wprowadzania do textbox liter. chodzi o to zeby mozna było wpisywac tylko cyfry( liczby)?

0

Witam.
Możesz np. pod obsługę zdarzenia KeyPress dla textBoxa podpiąć poniższy kod:

if (!(((byte)e.KeyChar > 47) & ((byte)e.KeyChar < 58)) & (e.KeyChar != (char)8))
                e.KeyChar = (char)0;

Pozdrawiam.

0

dziekuje za podpowiedz. a gdzie szukać obsługi zdarzeń dla texBox?( dopiero się ucze!!).

0

Musisz przejść do okna właściwości (properties), kliknij na interesujący cię komponent i naciśnij P. Tam znajdziesz przycisk z piorunem, są tam zdarzenia (events). Gdzie wystarczy już tylko znaleźć interesujące cie zdarzenie i kliknąć na nim dwa razy, to spowoduje wygenerowanie procedury obsługującej wybrane zdarzenie, teraz wystarczy już tylko wpisać jakieś instrukcje.
Pozdrawiam.

0

dziekuje za instrukcje. reszte postaram sie rozkminić. w SPACJA końcu dowiedziałem sie co to znaczy events. niestety do wszystkiego dochodze sam lub z pomocą ludzi życzliwych bo literatura którą posiadam jest dla mnie za mądra.

0

oczywiście wszystko działa. przerobiłem troche kod do własnych potrzeb.
if (!(((byte)e.KeyChar > 47) & ((byte)e.KeyChar < 58)) & (e.KeyChar != (char)8) & (e.KeyChar != (char)44))
e.KeyChar = (char)0;

0

Witam można też prościej

if (!Char.IsNumber(e.KeyChar)) e.KeyChar = (char)0;

Pozdrawiam

0
Kamil S. napisał(a)

Witam można też prościej

if (!Char.IsNumber(e.KeyChar)) e.KeyChar = (char)0;

Brakowało jeszcze mozliwości użycia backspace-a.

 if (!Char.IsNumber(e.KeyChar) && (byte)e.KeyChar != 8) 
          e.KeyChar = (char)0;
0

Mozna tez tak:

if (!Char.IsNumber(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.KeyChar = (char)0;

Pozdrawiam

0

kurcze a ja mam taki problemik
pisze sobie aplikcje na pocketa PC i tak

to:

e.KeyChar = (char)0;

wywala mi błąd taki:
"Property or indexer 'System.Windows.Forms.KeyPressEventArgs.KeyChar' cannot be assigned to -- it is read only"

no wiem co to znaczy ;-) - tylko dlaczego taki błąd mi wywala, przecież e.KeyChar jest Gets or sets

0

Jak zrobić żeby przy dużej liczbie textBoxów np 50 nie wklejać tego kodu do wszystkich tylko odwołać sie do jednego miejsca w programie ?

0

heh, już zrobiłem ;)

0

A na jakim zdarzeniu zrobic to samo ale dla wypełniania tabeli datagridview bo z dataGridView1_KeyPress nie chce działać???

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