如何将上一个和下一个按钮添加到ListView

时间:2018-08-25 09:39:04

标签: c# winforms listview

我正在使用Visual Studio 2010,并为一个表单制作了Windows应用程序表单,而我正在使用SQL Server,该表单显示了来自sql数据库的表格信息。

当我单击下一个按钮时,它将转到下一行;如果我单击上一个按钮,则将转到上一行?

当单击下一个和上一个按钮时,如何获取ListView的第一个列的数据并将其插入到Label1中?

2 个答案:

答案 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来从最后一行转到第一行。

相关问题