我正在使用Visual Studio 2010,并为一个表单制作了Windows应用程序表单,而我正在使用SQL Server,该表单显示了来自sql数据库的表格信息。
当我单击下一个按钮时,它将转到下一行;如果我单击上一个按钮,则将转到上一行?
当单击下一个和上一个按钮时,如何获取ListView
的第一个列的数据并将其插入到Label1
中?
答案 0 :(得分:1)
只要您将列表视图设置为仅选择一项MultiSelect = false
,您就可以使用:
int index = listView1.SelectedIndices[0] + 1;
listView1.SelectedIndices.Clear();
listView1.SelectedIndices.Add(index);
前进并
int index = listView1.SelectedIndices[0] - 1;
listView1.SelectedIndices.Clear();
listView1.SelectedIndices.Add(index);
向后退。
注意:您将需要进行一些值检查,以确保退后一步时不会低于0,前进时不会超过列表视图中的项目总数。
>要获取当前项目的内容,您需要在列表视图SelectedIndexChanged
上附加一个事件:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem currentitem = listView1.SelectedItems[0];
label1.Text = currentitem.Text;
}
else
label1.Text = string.Empty;
}
答案 1 :(得分:1)
将列表视图中的属性MultiSelect
设置为false,您将可以执行以下操作:
private void btnPrevious_Click(object sender, EventArgs e)
{
int index = listView1.SelectedIndices[0] - 1;
// In case we're in the first row
if (index < 0)
return;
listView1.Items[index].Selected = true;
}
private void btnPrevious_Click(object sender, EventArgs e)
{
int index = listView1.SelectedIndices[0] + 1;
// In case we're in the last row
if (index >= listView1.Items.Count)
return;
listView1.Items[index].Selected = true;
}
设置项目的Selected
属性会取消选择其他项目(如果MultiSelect设置为false)。
例如,甚至可以通过将索引设置为0或listView1.Items.Count - 1
来从最后一行转到第一行。