C# 如何使ListView中的指定行成为焦点

C# 如何使ListView中的指定行成为焦点,c#,C#,现在我正在WinForm应用程序中使用ListView。应用程序将从数据库中读取记录并在ListView中显示。listview中可能有100行按某种原则排序。现在,如果我想选择第36行(整行将为蓝色),我必须滚动条并找到该行并将其选中。如何在显示表单时使其自动选中?是否有任何方法可以使listview滚动到指定行?谢谢。您必须使用确保可修改。列表视图1的示例代码: listView1.Items[36].Selected = true; listView1.EnsureVisible(36);

现在我正在WinForm应用程序中使用ListView。应用程序将从数据库中读取记录并在ListView中显示。listview中可能有100行按某种原则排序。现在,如果我想选择第36行(整行将为蓝色),我必须滚动条并找到该行并将其选中。如何在显示表单时使其自动选中?是否有任何方法可以使listview滚动到指定行?谢谢。

您必须使用
确保可修改
列表视图1的示例代码:

listView1.Items[36].Selected = true;
listView1.EnsureVisible(36);

这将在底部显示给定的行。如果要在更高的位置显示它(并且它不是最后一行),则必须对以下行之一(37、38…)使用
Ensurevible

您可以显式执行:

listView1.Items[36].Selected = true;
或者通过循环选择多个元素:

foreach (ListViewItem item in listView1.Items) { 

        if(item.Text == "aaaaa"){ // or something else

            item.Selected = true;

        }           

    }

此代码不提供OP要求的内容。他并不担心选择一行,而是担心显示所选行。PS:您必须在条件内退出循环(中断);否则,即使找到匹配项,它也会继续搜索。或者,您可以使用不同类型的循环来避免中断(例如,一个While循环,其中ListViewItem给出的条件与目标值不同)。感谢您提供的有用信息。@Robinson欢迎您。但你说有用的信息是什么意思?这不是你问的问题的答案吗?我从你的信息中学到了一种新的方法。至于我的问题,在Solunton中我找到了一个由前开发者创建的密封方法。所以我就用了。“但我从你身上学到了一些东西。”罗宾逊说得很清楚。我是来帮忙的。谢谢你的奖励。