C# 当listview项聚焦于C时调用方法#

C# 当listview项聚焦于C时调用方法#,c#,winforms,visual-studio,listview,C#,Winforms,Visual Studio,Listview,我正在制作一个小型C#应用程序,用户在其中输入信息。信息存储在对象中,对象依次存储在列表中。信息以列表视图的形式显示给用户 我希望这样,当用户单击listview中的某个项目时,该项目的索引将传递给列表,该列表将查找具有相同索引的对象并获取其信息。然后,信息显示在用户输入其信息的相同文本框中 我的问题是,我现在不知道当用户在listview中选择一行时调用什么方法 这就是我所拥有的: private void listView1_SelectedIndexChanged(obje

我正在制作一个小型C#应用程序,用户在其中输入信息。信息存储在对象中,对象依次存储在列表中。信息以列表视图的形式显示给用户

我希望这样,当用户单击listview中的某个项目时,该项目的索引将传递给列表,该列表将查找具有相同索引的对象并获取其信息。然后,信息显示在用户输入其信息的相同文本框中

我的问题是,我现在不知道当用户在listview中选择一行时调用什么方法

这就是我所拥有的:

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (listView1.SelectedItems.Count == 1)
        {
            index = listView1.FocusedItem.Index;
            textBox1.Text = manager.FocusedContact(index).FirstName;
            textBox2.Text = manager.FocusedContact(index).LastName;
            textBox3.Text = manager.FocusedContact(index).Street;
            textBox4.Text = manager.FocusedContact(index).City;
            textBox5.Text = manager.FocusedContact(index).ZipCode;
        }
    }
我试过:

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
 textbox1.Text = "hi";
}

因此我知道,
private void listView1\u SelectedIndexChanged
是错误的方法,或者listview是否有一些选项我忘记了打开或关闭?

您应该能够像这样检索所选索引:

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
   var index = listView1.SelectedIndex;
}
this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
如果事件根本没有触发,请检查事件处理程序是否在窗体的Designer.cs文件中正确注册。在您的情况下,它应该如下所示:

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
   var index = listView1.SelectedIndex;
}
this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);

您应该能够检索所选索引,如下所示:

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
   var index = listView1.SelectedIndex;
}
this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
如果事件根本没有触发,请检查事件处理程序是否在窗体的Designer.cs文件中正确注册。在您的情况下,它应该如下所示:

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
   var index = listView1.SelectedIndex;
}
this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);

它的可能副本是正确的事件。但是当一个项目未被选中时,它也会被调用!!因此,焦点项目甚至可能不会被选中!!检查selectetedItems。计数并使用。selectetedItems[0]。!什么意思?我显然已经在检查selectedItems.Count了。我应该如何使用selectedItems[0]?你能发表你的评论作为回答吗?可能是重复的是正确的事件。但是当一个项目未被选中时,它也会被调用!!因此,焦点项目甚至可能不会被选中!!检查selectetedItems。计数并使用。selectetedItems[0]。!什么意思?我显然已经在检查selectedItems.Count了。我应该如何使用selectedItems[0]?你能发表你的评论作为回答吗?这是我已经在做的事情吗?如果你读了我的问题,我甚至试过:
private void listView1\u SelectedIndexChanged(object sender,EventArgs e){textbox1.Text=“hi”}
,以查看事件是否触发,但它没有。使用此“我的文本框”仍然为空。很抱歉,从您的问题中不清楚问题是否是未触发的事件-听起来您的主要问题是无法获取所选项目的索引。如果事件未触发,您能否检查eventhandler是否已注册到form Design.cs文件中。您应该有:this.listView1.SelectedIndexChanged+=new System.EventHandler(this.listView1\u SelectedIndexChanged);哦,我很抱歉。无论如何,该事件未在designed.cs文件中注册。我添加了你写的东西,现在它工作了!请编辑您的答案,以便我可以接受:)没问题,很高兴它帮助了您-我更新了我的答案,谢谢这是我已经在做的吗?如果你读了我的问题,我甚至试过:
private void listView1\u SelectedIndexChanged(object sender,EventArgs e){textbox1.Text=“hi”}
,以查看事件是否触发,但它没有。使用此“我的文本框”仍然为空。很抱歉,从您的问题中不清楚问题是否是未触发的事件-听起来您的主要问题是无法获取所选项目的索引。如果事件未触发,您能否检查eventhandler是否已注册到form Design.cs文件中。您应该有:this.listView1.SelectedIndexChanged+=new System.EventHandler(this.listView1\u SelectedIndexChanged);哦,我很抱歉。无论如何,该事件未在designed.cs文件中注册。我添加了你写的东西,现在它工作了!请编辑您的答案,以便我可以接受:)没问题,很高兴它帮助了您-我已经更新了我的答案,谢谢