w jaki sposób zablokować możliwość wprowadzania do textbox liter. chodzi o to zeby mozna było wpisywac tylko cyfry( liczby)?
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.
dziekuje za podpowiedz. a gdzie szukać obsługi zdarzeń dla texBox?( dopiero się ucze!!).
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.
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.
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;
Witam można też prościej
if (!Char.IsNumber(e.KeyChar)) e.KeyChar = (char)0;
Pozdrawiam
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;
Mozna tez tak:
if (!Char.IsNumber(e.KeyChar) && !Char.IsControl(e.KeyChar))
e.KeyChar = (char)0;
Pozdrawiam
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
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 ?
heh, już zrobiłem ;)
A na jakim zdarzeniu zrobic to samo ale dla wypełniania tabeli datagridview bo z dataGridView1_KeyPress nie chce działać???