[英]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.