繁体   English   中英

将焦点设置在 ListView

[英]Set focus on ListView

我刚刚开始在 VS2019 中使用 ListView 控件。

我确信有一个简单的解决方案,但我不知道如何像使用大多数其他控件一样将焦点设置在控件上。

我希望在表单加载时将 ListView 聚焦,然后我想以编程方式聚焦 ListView 中的项目。

我知道如何使用ListView1.FocusedItem.Index聚焦特定项目,但我无法聚焦实际控制。

我已经尝试过ListView1.Select()ListView1.Focus()但这些似乎什么也没做。

我错过了什么??

谢谢

编辑正如下面所指出的,控件实际上是使用 ListView1.Select() 聚焦的,它只是没有以我期望的方式聚焦,例如,一个 ListBox 聚焦 - 即,突出显示列表中的特定项目。

您将如何最好地聚焦 ListView 并突出显示特定项目? 我已经在表单上的命令按钮中尝试过这个,但它没有做任何事情。 尽管在我单击 ListView 中的项目后它可以正常工作。

ListView1.Select()
If (ListView1.SelectedItems.Count > 0) Then
    ListView1.Items(4).Selected = True
End If

ListView1.Select有效,您可能只是没有看到 ListView 有焦点。 您可以通过检查 ListView 上的 GotFocus 和 LostFocus 事件来验证这一点:

Private Sub ListView1_GotFocus(sender As Object, e As EventArgs) Handles ListView1.GotFocus
    Me.Text = "Got Focus"
End Sub

Private Sub ListView1_LostFocus(sender As Object, e As EventArgs) Handles ListView1.LostFocus
    Me.Text = "Lost Focus"
End Sub

这只是将表单的标题更新为“Got Focus”或“Lost Focus”。 您可以在 Form Load 事件中强制获得焦点:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

    ListView1.Items.Add("a")
    ListView1.Items.Add("b")
    ListView1.Items.Add("c")

    ListView1.Select()

End Sub
listview1.focus()

For I as Integer = 0 to ListView1.Items.Count - 1
    If ListView1.Items(i).Text = "youritemtexthere" then
         ListView1.Items(i).Selected = true
    End If
End For

或者如果您有索引但没有已知文本,请执行以下操作:

listview1.focus()
ListView1.Items(index).Selected = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM