我正在使用我的数据库中的结果填充我的System.Windows.Forms.ListView:
foreach (DataRow row in theTable.Rows)
{
...build item from row..
myListView.Items.Add(item);
}
Run Code Online (Sandbox Code Playgroud)
然后我想按照与从DB返回的行不同的顺序对listview进行排序,所以我打电话
myListView.Sort();
Run Code Online (Sandbox Code Playgroud)
但是当我想要在列表视图中选择顶部项目时它将无法工作,它选择了除顶部项目之外的其他内容:
myListView.Items[0].Selected = true;
Run Code Online (Sandbox Code Playgroud)
有意义,因为Items集合按照foreach循环中迭代的表的行的顺序添加.
使用myListView.TopItem.Seleted = true也不起作用.
那么在我对它进行排序之后,如何选择列表视图中最顶层的项目呢?
谢谢你的回答.
您确定当前选择了列表视图吗?如果未选择,您将看不到被选择的项目。
以下代码似乎有效:
private void Populate(object sender, EventArgs e)
{
listView1.Items.Add("D");
listView1.Items.Add("B");
listView1.Items.Add("A");
listView1.Items.Add("C");
}
private void SelectFirst(object sender, EventArgs e)
{
listView1.Items[0].Selected = true;
listView1.Select();
}
private void SortAndSelect(object sender, EventArgs e)
{
listView1.Sorting = SortOrder.Ascending;
listView1.Sort();
listView1.Items[0].Selected = true;
listView1.Select();
}
Run Code Online (Sandbox Code Playgroud)
注意 listView1.Select()
| 归档时间: |
|
| 查看次数: |
6182 次 |
| 最近记录: |