[ neptuncokg @ 26.02.2011. 21:39 ] @
U ListBoxu na formi izbor stavke se vrsi u dogadjaju "Click" ili "DblClick" (klikom ili duplim klikom). Pokusavao sam na razne nacine da isti efekat postignem pritiskom na "Enter", ali bez uspeha. ListBox ima svoj gogadjaj "Enter", ali on nema taj efekat. Moze li se uopste ovo izvesti u VBA? Hvala unapred i pozdrav.
[ Jpeca @ 02.03.2011. 07:42 ] @
Pretpostavljam da se radi o Listbox-u sa višestrukom selekcijom, jer u suprotnom ne znam kakav bi bio smisao.
Da bi obradio i prepoznao pritisak na Enter koristiš događaj KeyDown forme. KeyCode parametar za Enter je 13.


Code:
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 13 Then   ' Da li je pritisnuto Enter
      KeyCode = 0 ' Ukida Enter
      ListBox1.Selected(ListBox1.ListIndex) = True 'Selektuje tekucu stavku
  End If
End Sub
[ neptuncokg @ 02.03.2011. 10:19 ] @
Da, to je upravo resenje koje mi je trebalo. Kao sto je kod za "Enter" - 13, pretpostavljam da i druge tipke imaju svoj, ali ja to u helpu ne nadjoh. Hvala i pozdrav.
[ Jpeca @ 02.03.2011. 18:55 ] @
Uvek možeš ispitati tako što napraviš breakpoint i prekineš izvršavanje unutar rutine KeyPress i onda u Immediate window proveriš šta je u KeyCode. Lakša varijanta Key Code Constants for Visual Basic 6.0 Users . Znači umesto 13 može se koristiti vbKeyReturn konstanta, čitljivilje i preglednije.

Obrati pažnju da KeyDown može detektovati Ctrl Alt i Shift u kombinaciji sa nekim tasterom http://www.elitesecurity.org/t408205-0#2681491