【问题标题】:ListView selectedindexchangedListView selectedindex 已更改
【发布时间】:2012-04-09 01:43:47
【问题描述】:

当我从列表视图中单击“项目”时,我需要帮助才能获得响应。知道有 selectedindexchanged,但是当我尝试显示 MessageBox 时没有任何反应,尝试了很多其他的东西,但没有设法想出一些东西。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        ...
        while (reader.Read())
        {
            string alio = reader["fornamn"].ToString();
            string efternamn = reader["efternamn"].ToString();
            ListViewItem lvi = new ListViewItem(alio);
            listView1.Items.Add(lvi);
            lvi.SubItems.Add(efternamn);
        }
    }

    private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}

【问题讨论】:

  • 您使用的是 WPF 还是 WinForms?无论哪种方式,请发布您的代码。
  • 我们可以看看您尝试了什么以及遇到了什么问题/错误吗?
  • 我使用 WinForms pastebin.com/zWanhwA4
  • @AliRiyadh 您能否发布您尝试过的代码并告诉我们您正在从事哪种类型的 .NET 项目? WebForms、MVC、Winforms、WPF……?我们需要您提供更多信息。
  • 这是我的代码,我使用 Framework 4.0.30 pastebin.com/zWanhwA4 我想从数据库中获取数据到我拥有的文本框中

标签: c# winforms listview select


【解决方案1】:

假设 81.private void listView1_SelectedIndexChanged 正确链接到列表视图,您将需要查询列表视图以找出选择的内容:

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
  if(this.listView1.SelectedItems.Count == 0)
    return;

  string namn = this.listView1.SelectedItems[0].Text;

  // Create the sql statement to retrieve details for the user
  string sql = string.Format("select * from kunder where fornamn = '{0}', namn);

  // do the same as you do to create a reader and update the controls.
}

【讨论】:

    【解决方案2】:

    按照术语“当我尝试显示 MessageBox 时什么都没有发生”\,我假设您只是将 MessageBox.Show("blah"); 放在事件处理程序中并且从未显示它。

    如果是这种情况,您的事件处理程序未正确连接到表单的列表视图。返回并查看文本 listView1_SelectedIndexChanged 在您的 Form1.Designer.cs 文件中的任何位置。

    如果没有(或无论如何),请从新表格重新开始。这是最简单的出路。 :)

    【讨论】:

      【解决方案3】:
      private void lstView_KQ_SelectedIndexChanged(object sender, EventArgs e)
          {
      
              if (lstView_KQ.SelectedItems.Count > 0)
              {
                  ListViewItem itiem = stView_KQ.SelectedItems[lstView_KQ.SelectedItems.Count - 1];
                  if (itiem != null)
                      foreach (ListViewItem lv in lstView_KQ.SelectedItems)
                      {
                          txtMaNV.Text = lv.SubItems[0].Text;
                          cmbCV.Text = lv.SubItems[1].Text;
                          txtHoNV.Text = lv.SubItems[2].Text;
                          txtTenNV.Text = lv.SubItems[3].Text;
                          txtNgaysinh.Text = lv.SubItems[4].Text;
                          txtGioiTinh.Text = lv.SubItems[5].Text;
                          txtDiaChi.Text = lv.SubItems[6].Text;
                          txtSDT.Text = lv.SubItems[7].Text;
                          txtCMND.Text = lv.SubItems[8].Text;
                      }
              }
          }      
      

      【讨论】:

      • 嗨,欢迎来到 Stack Overflow!感谢您的回答,但是,如果您对代码的作用及其工作原理添加解释,那么它会成为一个更好的答案。
      猜你喜欢
      • 2018-12-19
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-24
      • 2020-04-05
      相关资源
      最近更新 更多