将重点放在ListView上

时间:2019-09-22 22:29:33

标签: vb.net listview

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

我敢肯定有一个简单的解决方案,但是我不知道如何像其他大多数控件一样将焦点放在控件上。

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

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

我已经尝试过ListView1.Select()ListView1.Focus(),但它们似乎无济于事。

我想念什么!?

谢谢

编辑 正如下面所指出的,该控件实际上是使用ListView1.Select()进行聚焦的,只是它的聚焦方式与我期望的方式不同,例如,将ListBox聚焦的方式-即突出显示列表中的特定项目。 / p>

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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