【问题标题】:Calling a method when a listview item is focused C#当列表视图项获得焦点时调用方法 C#
【发布时间】:2016-09-18 02:44:01
【问题描述】:

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

我想这样当用户点击列表视图中的一个项目时,该项目的索引被传递给列表,该列表找到具有相同索引的对象并获取其信息。然后信息会显示在用户输入他或她的信息的相同文本框中。

我的问题是,当用户在列表视图中选择一行时,我现在不知道要调用什么方法。

这就是我所拥有的:

        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_SelectedIndexChanged 是错误的方法,还是我忘记打开或关闭列表视图的某些选项?

【问题讨论】:

  • 这是正确的事件。但是在取消选择项目时也会调用它!因此,甚至可能无法选择重点项目!检查 selectetedItems.Count 并使用 .selectetedItems[0].!
  • 什么意思?我显然已经在检查 selectedItems.Count。我应该如何使用 selectedItems[0]?你能发表你的评论作为答案吗?

标签: c# winforms visual-studio listview


【解决方案1】:

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

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
   var index = listView1.SelectedIndex;
}

如果事件根本没有触发,请检查事件处理程序是否在表单的 Designer.cs 文件中正确注册。在您的情况下,它应该如下所示:

this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);

【讨论】:

  • 这就是我已经在做的?如果您阅读了我的问题,我什至尝试过:private void listView1_SelectedIndexChanged(object sender, EventArgs e) { textbox1.Text = "hi"; }查看事件是否正在触发,但它没有触发。使用这个我的文本框仍然是空的。
  • 抱歉,您的问题并不清楚问题是事件未触发 - 听起来您的主要问题是您无法获取所选项目的索引。如果事件没有触发,您能否检查事件处理程序是否已在您的表单设计的.cs 文件中注册。你应该有:this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
  • 哦,我很抱歉。无论如何,该事件未在设计的表单文件中注册。我添加了你写的东西,现在它可以工作了!请编辑您的答案,以便我接受:)
  • 没问题,很高兴它对您有所帮助 - 我已经更新了我的答案,谢谢
猜你喜欢
  • 1970-01-01
  • 2011-09-06
  • 2012-09-18
  • 2014-05-29
  • 1970-01-01
  • 2012-09-22
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
相关资源
最近更新 更多