[ nikitaGradov @ 22.12.2009. 10:23 ] @
Nadam se da cu uspjeti da korektno formulisem sta mi treba: potrebno mi je da 'ignorisem' unos sa tasture, da tako kazem, prilikom poziva neke metode. Znaci, sve vrijeme izvrsavanja te metode, treba ignorisati korisnikov unos sa tastature.
Znaci:
- disable tastaturu,
- pozovi metod XY(),
- enable tastaturu ...

Ako neko zna, ustedjece mi malo vremena ...

Hvala
[ Java Beograd @ 22.12.2009. 10:31 ] @
Vidi, ode je najbitnije koja kontrola ima fokus. A inače mi nije jasno kako bi to unos sa tastature mogao da poremeti izvršenje bilo koje metode. Pojasni malo, o čemi se radi.
[ nikitaGradov @ 22.12.2009. 11:20 ] @
Citat:
Java Beograd: Vidi, ode je najbitnije koja kontrola ima fokus. A inače mi nije jasno kako bi to unos sa tastature mogao da poremeti izvršenje bilo koje metode. Pojasni malo, o čemi se radi.


Unos sa tastature ne moze da poremeti izvrsenje metode XYZ() (nebitno) ... radi se o tome da korisnik, cesto (zbog prirode posla), malo brze 'kucka', narocito na Enter, pa, ne znam da li cu biti jasan, tim 'press'-ovima na Enter, potvrdi nekoliko poruka (MessageBox-ova), koje se javljaju po izlasku iz metode XYZ(), i, secto, ode na neku drugu formu od one koja mu je potrebna za posao koji obavlja (a koja se poziva preko default dugmeta, recimo) ...
Jos jednom: zelim da onemogucim koriscenje tastature u pojedinim slucajevima (eto, konkretno, od poziva do izlaska iz neke metode) ... nema veze ni sa pojedinacnim kontrolama ni sa fokusom ... ili, da drugacije preformulisem: po izlasku iz metoda XYZ(), zelim da flush-iram keyboard buffer ...
[ Dejan Carić @ 22.12.2009. 11:21 ] @
Ukoliko je win forms aplikacija, da li bi ti odgovaralo da napraviš preloading form?
[ nikitaGradov @ 22.12.2009. 12:15 ] @
Citat:
Dejan Carić: Ukoliko je win forms aplikacija, da li bi ti odgovaralo da napraviš preloading form?


Ne znam sta je preloading form (da budem iskren)?

Evo, da jos jednom pokusam da opisem sta bih ja to htio: ima jedna forma (u stvari nije forma, nego kontrola), koja je 'glavna', i na koju treba da se vratimo sa podforme, iz koje se poziva metod XYZ(). Na povratku iz tog metoda, pojavi se poruka (MessageBox) da je to i to uradjeno, pritisne se Enter, zatvara se podforma i vratimo se na glavnu kontrolu. Ova 'glavna' kontrola ima default button, pa ako smo vise puta pritisnuli Enter, iz te glavne kontrole ce se pozvati forma (koja je pridruzena default button-u). To moze, ali i ne mora, da bude forma koja nam treba za obavljanje tekuceg zadatka.

Uzmite u obzir da je taj korisnik informaticki nepismen, da je misa i tastaturu prvi put uzeo u ruku kad je poceo da koristi ovu aplikaciju. On ovakvu situaciju smatra 'bugom' i trazi da se ispravi. Jednostavno, ako je na jedoj formi, zbog uzastopnih pritisaka na taster Enter, pojavi mu se neka druga forma, pa mu je veliki 'napor' da se vrati na onu koja mu treba. A i ja bih htio da to rijesim i naucim kako se 'ignorise' tastatura, kao device, u c#-u.

Nadam se da sam bio jasan ...
[ IvanBeograd @ 22.12.2009. 17:01 ] @
Ja isto nisam razumeo bas,ali mozda ce ti ovo nesto pomoci,kazes da tvoja xyz metoda vrati true ili false,pa ako je true(npr) onda kazes na onKeyPress event od TextBox-a,da ako je (true vraceno iz metode) i pritisnut enter da ne radi nista,a ako je false,i pritisnut je enter da radi nesto drugo.
[ dusans @ 23.12.2009. 09:50 ] @
Čovek hoće da ignoriše sve što je korisnik kucao u toku izvršavanja metode,
tj. ne želi da mu se napuni buffer tastature sa onim što je korisnik pritiskao kada se metoda završi
i hteo bi da eliminiše side-effect koji tada nastaje.

Znači treba mu brisanje buffer-a tastature,
sad ja konkretno to nisam radio, proguglaj malo, trebalo bi da može da se izvede.

[ deerbeer @ 23.12.2009. 10:10 ] @
Low - level keyboard hook sa SetWindowsHookEx winapi funkcijom :
http://www.codeproject.com/KB/system/CSLLKeyboard.aspx