• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Listboxda sağ tıka sol tık yaptırma

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Hayırlı akşamlar,

Listbox üzerindeyken sağ tıkla çalışan kodlarım mevcut.
herhangi bir satırın üzerinde iken sağtık yaptığımda o satırı secmesi münkünmüdür?

Mouse kordinatları ile listindex aklıma geldi fakat neyi neye bölüp neyle çıkaracağım çıkamadım içinden
 
Kod:
ListBox1.Selected((Y / 9.98)) = True
Burada Y değeri nereden alıyor?
Denedim fakat seçtiği satır hatalı?
 
9.98 yerin 13.2 yaptım seçim doğru oldu .
Fakat Y değeri nedir?
 
Deneme amaçlı Formun boyutunu küçülttüm siye seçili satır hata veriyor.
 
Dosyanızda boş bir modüle aşağıdaki kodu uygulayınız.

Kod:
#If VBA7 Then
    Public Declare PtrSafe Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As LongPtr
    Public Declare PtrSafe Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
    Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
    Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10

Listbox nesnesinin bulunduğu formun kod bölümüne aşağıdaki kodu uygulayınız.

Kod:
Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
    mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
    Sleep 50
    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub
 
Kod:
Private Sub carilist_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
  GetCursorPos pos
 If Button = 2 Then


 'carilist.Selected((Round((Y / 13.2), 0))) = True
'carilist.ListIndex = (Round((y / 13.2), 0))

 mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
    Sleep 50
    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
    [COLOR="Red"]acılır_menu.Show
       acılır_menu.Top = pos.y / 1.325
       acılır_menu.Left = pos.x / 1.325
         acılır_menu.caribilgisi.Caption = CariListesi.Adı.Value & Chr(13) & CariListesi.Soyadı.Value
  [/COLOR]
       

    End If
End Sub


Teşekkürler Korhan bey ,

İlk form açıldığında sağtık işlem yapmıyor.
Bir sefer sol tıkla sectikten sonra sağ tık seçim yapıyor fakat;
Burada Kırmızı olan yer 2. tıklamadan sonra çalışıyor.
 
Son düzenleme:
Korhan bey teşekkürler.
Benim dikatsizliğim.
Listbox click kodlarına formu kapatma kodu eklemiştim sebebi buymuş:)

Sorunum çözüldü.Diğer formu da başka şekşlde kapatırım artık :)
 
Korhan bey şimdi farkettim.
sağtıkladığımda;
Kod:
acılır_menu.caribilgisi.Caption = CariListesi.Adı.Value & Chr(13) & CariListesi.Soyadı.Value

Buradaki kodlardaki verileri bir öndeki veriler olarak geliyor.
Mesela ilk form acıldığında herhangi bir satır seçtiğimde caribilgisi.Caption boş olarak çıkıyor.
Eğer 2.kez tıklarsam ancak doğru veriler geliyor.


Not :
Bilgiler ilgili yerlere bu şiekilde geliyor
Kod:
CariListesi.Adı.Value = CariListesi.carilist.List(CariListesi.carilist.ListIndex, 1)
CariListesi.Soyadı.Value = CariListesi.carilist.List(CariListesi.carilist.ListIndex, 2)
 
Kodlar "MouseDown" olayına yazılı durumda. Sorun buradan kaynaklanıyor olabilir.

Dosyanızı görebilsek daha sağlıklı yorum yapabiliriz.
 
Düzelttim sorunumu ,
Kod:
acılır_menu.caribilgisi.Caption = CariListesi.Adı.Value & Chr(13) & CariListesi.Soyadı.Value
Bu kodları normal lsitbox click olayına ekledim .
 
Geri
Üst