gpt4 book ai didi

vb.net - 防止 ListView 取消选择

转载 作者:行者123 更新时间:2023-12-01 12:44:28 25 4
gpt4 key购买 nike

目标

如果 ListView 中有 1 个或多个项目,并且用户在 ListView 的空白处单击,则所选项目应保持选中状态。

换句话说,如果一个项目被选中,它应该保持选中状态,除非另一个项目被选中。

现状

我将 ListView 的属性 HideSelection 设置为 false,这将使所选的 ListViewItem 在控件失去焦点时保持选中状态。但是,当我单击 ListView 的空白区域时,这并不能解决问题。

有什么建议吗?

最佳答案

您可以通过子类化 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

关于vb.net - 防止 ListView 取消选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21605519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com