用列表视图项值填充文本框

本文关键字:填充 文本 列表 视图 | 更新日期: 2023-09-27 18:06:18

我正在用密码填充列表视图。然后,我想将选中的项目文本传递给文本框,当它被点击时。

到目前为止,我有:

 private void passwordListView_SelectedIndexChanged(object sender, EventArgs e)
    {
        ListViewItem listViewItem = new ListViewItem();
        listViewItem = passwordListView.SelectedItems[0];
        passwordTextBox.Text = listViewItem.Text;
    }

当我第一次按下它并填充文本框时,它会工作,但是如果我在列表视图中单击不同的密码,它会抛出异常。

我是不是漏掉了什么明显的东西?

用列表视图项值填充文本框

当选定的索引在winforms ListView中被更改时,第一个事件是针对现在已被取消选中的项目。此时SelectedItems为空

通过if (passwordListView.SelectedItems.Count == 0) return;检查

在此之后,您将获得第二个事件,它将用于新选择,并且您可以对此进行操作。

顺便说一句,你不需要在你的代码片段中创建一个新的ListViewItem,这将节省额外的不必要的创建:

ListViewItem listViewItem = passwordListView.SelectedItems[0];

也许你可以试试这个:

private void passwordListView_SelectedIndexChanged(object sender, EventArgs e)
{
    if(passwordListView.SelectedItems.Count > 0)
        passwordTextBox.Text = passwordListView.SelectedItems.First().Text;
}