|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
11.12.2014, 19:29 | #1 |
Član
Član od: 15.10.2007.
Lokacija: Novi Beograd
Poruke: 145
Zahvalnice: 19
Zahvaljeno 4 puta na 4 poruka
|
Da li ovo stvara compile error u C#?
Pozz svima.
Radeci jedan zadatak naisao sam na gresku koja ne bi trebalo da se pojavi. U svoj WinForms projekat sam uneo dogadjaj KeyPress koji bi trebao da onemoguci unos svega sem brojeva u TextBox kontrolu (u kodu obelezena sa tbGodRodjenja). Ovo je deo koda koji stvara problem: Kod:
private void tbGodRodjenja_KeyPress(object sender, KeyPressEventArgs e) { if (Information.IsNumeric(e.KeyChar) || e.KeyChar == '\b') { e.Handled = true; } else { e.Handled = false; } } Kod:
using Microsoft.VisualBasic; Ovo se pojavljuje u MS Visual Studio 2010 i 2012. |
11.12.2014, 22:46 | #2 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.085
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: Da li ovo stvara compile error u C#?
Šta bude ako ne koristiš IsNumeric nego proveravaš sa > '0' && < '9' ?
Alternativno, probaj i Decimal.TryParse. |
11.12.2014, 23:11 | #3 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Da li ovo stvara compile error u C#?
a i godina rođenja ti je date a ne number
|
11.12.2014, 23:23 | #4 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Da li ovo stvara compile error u C#?
|
11.12.2014, 23:28 | #5 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Da li ovo stvara compile error u C#?
ali zahteva dodatne provere i konverzije ako se jednom seti da za nešto koristi taj podatak.. a i ne verujem da će nešto da se mnogo muči kompjuter sa tim podacima bilo da su tipa int ili date ne pravi on ovde ne znam kakvu enterprise aplikaciju pa da štedi
Cela logika je pogrešna, umesto da izabere datum on traži od korisnika da upisuje brojeve i onda to vodi do ovog koda koji je napisao |
12.12.2014, 0:09 | #6 | ||
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Da li ovo stvara compile error u C#?
Citat:
Citat:
I tu će ti svaki UX designer vredan svoje plate reći da je trpanje combo box-a sa 100+ podataka (godina) užasno iskustvo za korisnika. |
||
12.12.2014, 0:44 | #7 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Da li ovo stvara compile error u C#?
možemo mi sad da se ne složimo šta je najbolje, i najlakše jer može da se programira na mnogo načina, ja imam svoj pogled na to ali ne bavim se više time ponekad pročitam neku knjigu pa neću da namećem svoje mišljenje
|
12.12.2014, 1:48 | #8 |
Član
Član od: 1.7.2014.
Lokacija: Bijeljina
Poruke: 228
Zahvalnice: 26
Zahvaljeno 59 puta na 46 poruka
|
Re: Da li ovo stvara compile error u C#?
Gledam upravo slicno pitanje na stackoverflowu. Pitam se sta bi bilo kada bi korisnik "zalijepio" vrijednost umjesto sto bi je otkucao.
Relativno sam pocetnik u C#, ali moje iskustvo na polju UI dizajna kaze da ne treba da koristis TextBox (kao sto i ostali clanovi foruma kazu :P). Ukoliko zelis da prikazes precizan datum, koristi DateTimePicker. Ukoliko zelis da prikazes samo godinu, mozda je najbolje rjesenje da koristis NumericUpDown |
12.12.2014, 1:54 | #9 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Da li ovo stvara compile error u C#?
baš tako čim daš korisniku mogućnost da unosi nešto u polje to moraš da proveravaš, šta ako unese 98 ili 1969 ili 3 ili pastuje tekst
Ovako ima ponuđeno šta može da izabere i gotovo ne moraš da misliš šta sve može da se desi.. pomnoži to sa svakim poljem za koje ćeš morati da radiš proveru i videćeš koliko posla praviš sam sebi Ili da moraš da izračunaš dal ima 18 .. Poslednja ispravka: water wizard (12.12.2014 u 2:02) |
12.12.2014, 2:37 | #10 | ||
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Da li ovo stvara compile error u C#?
Citat:
Kod:
int year; const int minYear = 1900; if(!(Int32.TryParse(godina.Text, out year) && year <= DateTime.Now.Year && year >= minYear)) { // neispravan datum } Citat:
Poslednja ispravka: Neutrino (12.12.2014 u 2:55) |
||
12.12.2014, 3:04 | #11 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Da li ovo stvara compile error u C#?
jeste red po red za svako polje nakupi se.. ali poštujem, svako ima svoj stil ja gledam da sve nepotrebno izbacim.. a i taj textchange event se pali za svaku promenu bolje da radi proveru kad se promeni fokus na drugu kontrolu ili kad klikne next/finish
Niko nije otporan na bagove bilo je problem i na facebooku kad je neka starica htela da otvori nalog pa nisu prihvatali da je rođena u 19 veku.. pretpostavljam da su koristili istu logiku od koliko do koliko int je dozvoljeno.. ali sve se to vraća kao bumerang jer posle moraš da ispravljaš logiku aplikacije ... Poslednja ispravka: water wizard (12.12.2014 u 3:11) |
12.12.2014, 3:07 | #12 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Da li ovo stvara compile error u C#?
|
12.12.2014, 3:18 | #13 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Da li ovo stvara compile error u C#?
pa to kad se promeni vrednost u kontroli znači za svaki pritisak tastera na tastaturi možeš da proveriš lako
on textbox.textchange msgbox(... i onda probaj da ukucaš nešto za svako slovo/broj ima da ti iskače msgbox |
12.12.2014, 15:48 | #14 | |
Član
Član od: 1.7.2014.
Lokacija: Bijeljina
Poruke: 228
Zahvalnice: 26
Zahvaljeno 59 puta na 46 poruka
|
Re: Da li ovo stvara compile error u C#?
Citat:
|
|
12.12.2014, 16:45 | #15 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Da li ovo stvara compile error u C#?
da bi video koliko puta se dešava event, jednom kad promeni boju boja više neće da se menja pa će da ima osećaj kao da se event nije opet desio kad ukuca sledeći karakter
Ovo je debuging a ne UI U suštini nije nešto mnogo bitno kao ni koji je data type ali vodi do različitih rešenja i komplikovanja ipak nije baš najbolje kad za svaki keypress radiš proveru ako nije potrebno, zna se kad se proverava ili kad kontrola gubi focus ili na kraju popunjavanja svih polja Poslednja ispravka: water wizard (12.12.2014 u 16:58) |
12.12.2014, 17:34 | #16 | |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Da li ovo stvara compile error u C#?
Citat:
Kod:
private void godina_TextChanged(object sender, EventArgs e) { // Resetovanje stilizacije kontrole. godina.ForeColor = Color.Empty; /* * Provera se vrši samo kada dužina stringa za godinu dostigne maksimalnu dužinu od 4 karaktera. * Maksimalna dužina se podešava u Properies dijalogu kontrole. */ if (godina.TextLength < godina.MaxLength) { return; } int year; // Minimalna vrednost za godinu. const int minYear = 1900; /* * Ukoliko je godina neispravna ili pada van opsega između minYear i trenutne godine tekst kontrole se boji crveno. * U suprotnom se resetuje na default boju. */ if(!(Int32.TryParse(godina.Text, out year) && year <= DateTime.Now.Year && year >= minYear)) { godina.ForeColor = Color.Red; } else { godina.ForeColor = Color.Empty; } } |
|
12.12.2014, 17:58 | #17 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Da li ovo stvara compile error u C#?
eto već ima dosta da se kuca
Diskutujemo, ne kritikujem niti opravdavam šta i kako treba da se razumemo niti se pravim pametan Zadovoljstvo mi je da razmenjujem mišljenja sa ljudima koji se ovim bave pa ono.. Malo smo skrenuli sa teme pošto čovek radi zadatak ali neće da mu smeta što smo i logiku malo protresli |
13.12.2014, 12:59 | #18 |
Član
Član od: 15.10.2007.
Lokacija: Novi Beograd
Poruke: 145
Zahvalnice: 19
Zahvaljeno 4 puta na 4 poruka
|
Re: Da li ovo stvara compile error u C#?
Hvala Vam na odgovorima, i ja vam se izvinjavam sto nisam dodao vise detalja oko problema.
Zadatak je naime iz zbirke moje skole. Dizajnirao sam formu, i prema uslovima zadatka je trazeno da se godina rodjenja unese kroz kontrolu TextBox. Takodje je trazeno da se obezbedi funkcionalnost da korisnik ne moze nista da unese u tu kontrolu sem brojeva i da se koristi dogadjaj KeyPress. Jedini problem u gorenavedenom kodu je "greska" koja se pojavljuje (a takvo resenje je dato u zbirci, ja sam ga na drugi nacin resio). Znaci moje pitanje je bilo zasto dolazi do takve greske, jer sam adekvatno naveo namespace klase Information. Da li jos nesto nedostaje, posto u C# projekat ubacujem klasu iz Visual Basic-a? |
Bookmarks sajtovi |
Tagovi |
c sharp, problem kod |
Alatke vezane za temu | |
Vrste prikaza | |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
ASUS stvara monstruma, Dual-GTX 285 4 GB | zdravkelja | Vesti | 17 | 17.6.2009 20:56 |