Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Apr 16, 1999

Implement a ListView ItemDoubleClick Event

Double-clicking an icon or file name in Explorer is the standard way of launching an application in Windows. However, if you're developing an app that uses the ListView control from the Microsoft Windows Common Controls library (COMCTL32.ocx), this functionality is not directly exposed through an event. You have a DoubleClick event for the ListView control, but this event gets raised when a user double-clicks anywhere on the control. You also have an ItemClick event, but this event is only fired for a single-click on a ListItem object. Wouldn't it be nice to have an ItemDoubleClick event?

Use the ListView's MouseUp event to trap the X and Y coordinates of where the user last clicked the mouse. Here's a way to implement this functionality in your code:

 
Option Explicit

Private sngListViewX As Single
Private sngListViewY As Single

Private Sub ListView1_MouseUp(Button As Integer, Shift As _
	Integer, x As Single, y As Single)
	sngListViewX = x
	sngListViewY = y
End Sub
After trapping these coordinates, pass them to the HitTest method of the ListView control during the DoubleClick event to determine whether a user has double-clicked on a particular ListItem object:
 
Private Sub ListView1_DblClick()
	Dim lListItem As ListItem

	Set lListItem = ListView1.HitTest(sngListViewX, _
		sngListViewY)
	If (lListItem Is Nothing) Then
		MsgBox "You did not double-click on a ListItem."
	Else
		MsgBox "You double-clicked on ListItem=" & _
			lListItem.Text
	End If
	Set lListItem = Nothing
End Sub
Dwayne Bradley
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date