用列表视图项值填充文本框
本文关键字:填充 文本 列表 视图 | 更新日期: 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;
}