listbox 问题
请问listbox的item上有没有DoubleClick和Click事件?
我要实现双击listbox的item输出该item
是否能用SelectedItems
如
Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
If ListBox1.Items.Count = 0 Then
Return
End If
MsgBox(ListBox1.SelectedItem)
End Sub
但是当双击下边空白处时
我希望输出 MsgBox(“none”)
请问ListBox有没有item的DoubleClick和Click事件?
或者其他实现的方法
[解决办法]
ListBox有DoubleClick事件和Click事件,但没有到应到具体的Item上,你需要在控件的默认的DoubleClick及Click事件里来处理,可以使用SelectedIndex或SelectedItem来获取当前选中的Item。
[解决办法]
不知道有没有解决你的问题。。。
- VB.NET code
Private MsePoint As Point Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick If ListBox1.Items.Count = 0 Then Return End If If ListBox1.IndexFromPoint(MsePoint.X, MsePoint.Y) = -1 Then MsgBox("NONE") Else MsgBox(ListBox1.SelectedItem) End If End Sub Private Sub ListBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseMove MsePoint = New Point(e.X, e.Y) End Sub
[解决办法]
稍微改改:
- VB.NET code
Private MsePoint As Point Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick If ListBox1.Items.Count = 0 Then Return End If If ListBox1.IndexFromPoint(MsePoint.X, MsePoint.Y) = -1 Then MsgBox("NONE") Else MsgBox(ListBox1.SelectedItem) End If End Sub Private Sub ListBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown MsePoint = New Point(e.X, e.Y) If e.Button = MouseButtons.Right Then Dim sindex As Integer = ListBox1.IndexFromPoint(MsePoint.X, MsePoint.Y) If sindex <> -1 Then ListBox1.SelectedIndex = sindex End If End If End Sub