如果列表视图中有1个或更多项目,并且用户单击ListView的空白区域,则所选项目应保持选中状态。
换句话说,如果选择了某个项目,除非选择了其他项目,否则它应保持选中状态。
我将ListView HideSelection
的属性设置为false,这将使控件失去焦点时选定的ListViewItem保持选中状态。但是,当我单击Listview的空白时,这不能解决问题。
有什么建议吗?
答案 0 :(得分:4)
您可以通过继承ListView
:
Public Class UIListView
Inherits ListView
Private Sub WmLButtonDown(ByRef m As Message)
Dim pt As Point = New Point(m.LParam.ToInt32())
Dim ht As ListViewHitTestInfo = Me.HitTest(pt)
If (ht.Item Is Nothing) Then
m.Result = IntPtr.Zero
Else
MyBase.WndProc(m)
End If
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case WM_LBUTTONDOWN
Me.WmLButtonDown(m)
Exit Select
Case Else
MyBase.WndProc(m)
Exit Select
End Select
End Sub
Private Const WM_LBUTTONDOWN As Integer = &H201
End Class