ورود

View Full Version : تشخیص کلیک راست بر روی آیتم ListView ؟؟؟؟؟



daniyal_1363
سه شنبه 24 فروردین 1389, 17:21 عصر
سلام

در ListView که دارم تعدای آیتم هست ،میخوام بفهم که کی بر روی کدوم Item کلیک راست میشه و درادامه میخوام بدونم که در جایی که هیچ آیتمی نیست کی کلیک راست میشه؟

ali682344
سه شنبه 24 فروردین 1389, 20:38 عصر
سلام
سوال شما تا حدودي مبهمه! به هر حال
شما با قرار دادن اين كد در رويداد هاي موس مي تونيد كليك راست رو از ايتم ها متمايز كنيد

If Button = vbRightButton Then
Select Case ListView1.SelectedItem.Index
Case 1
دستورات براي ايتم 1
End Select
اگه منظورتون چيز ديگه اي است تا اصلاح كنم

موفق باشيد

daniyal_1363
چهارشنبه 25 فروردین 1389, 10:26 صبح
خیلی ممنون دوست عزیز منظورم تقریباً همینه فقط 2 مسئله هست

1 - تعداد Case ما مشخص نیست ( یعنی برای هر سیستم تعداد Index در ListView فرق می کنه)
2 - این فقط زمان کلیک رو آیتم های ListView عمل میکنه ، من میخوام بدونم کی در جایی که هیچ آیتم نیست کلیک (راست) میشه

در اصل کاری که میخوام انجام بدم به این صورت که وقتی روی آیتم ها کلیک راست شد یک منو رو نمایش بده و وقتی جایی که هیچ آیتم نیست کلیک شد یک منوی دیگه رو نمایش بده.

daniyal_1363
چهارشنبه 25 فروردین 1389, 11:08 صبح
راهش رو خودم پیدا کردم ممنون



Private Sub listView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
If Item <> "" Then
menul.Caption = "True"
End If
End Sub

Private Sub listView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Item = "" Then
menul.Caption = "False"
End If
End Sub

Private Sub listView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton And menul.Caption = "True" Then
PopupMenu mn2
ElseIf Button = vbRightButton And menul.Caption = "False" Then
PopupMenu mn1
End If
End Sub



به جای menul که از نوع لیبل هست بهتره از یه متغیر از نوع Boolean استفاده کنیم (لیبیل فقط برای تست بود)