【问题标题】:How can I get info about the list View Item selected如何获取有关所选列表查看项目的信息
【发布时间】:2013-06-24 09:51:18
【问题描述】:
           foreach (string imageFile in files)
           {
                try
                {
                    System.Drawing.Image myImage = Image.FromFile(imageFile);
                    myImageList.Images.Add(myImage);
                    myImage.Dispose();
                }
                catch { }
            }


            for (int i = 0; i < myImageList.Images.Count; i++) //I have a list view containing images
            {
                ListViewItem item = new ListViewItem();
                item.ImageIndex = i;
                imageListView.Items.Add(item);
            }

            private void imageListView_Clicked(object sender, EventArgs e)
            {
                 string myImage = imageListView.SelectedItems.ToString(); //get the name of image selected
            }

现在我想在选择图像时获取图像的名称,类似于上面的 imageListView_Clicked() 函数:

但它不起作用。

【问题讨论】:

    标签: c# winforms listview


    【解决方案1】:

    您应该修改这部分代码,将图像名称放入其Tag 属性:

     foreach (string imageFile in files)
           {
                try
                {
                    System.Drawing.Image myImage = Image.FromFile(imageFile);
                    myImage.Tag="image name for each item";//you can put for example image file name
                    myImageList.Images.Add(myImage);
                    myImage.Dispose();
                }
                catch { }
            }
    

    然后,当您想获取所选图像的名称时,可以使用以下代码:

    private void imageListView_Clicked(object sender, EventArgs e)
     {
         String imgName= (String)imageListView.SelectedItems[0].ImageList.Images[0].Tag;
    
     }
    

    【讨论】:

    • (String)myImageList.SelectedItems[0].ImageList.Images[0].Tag; 我认为这行不通。正确的代码应该是(String)imageListView.LargeImageList[myImageList.SelectedItems[0].ImageIndex].Tag; 但是你应该使用ListViewItem 本身的Tag 而不是它的Image
    【解决方案2】:

    我认为这会奏效。

        private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (listView1.SelectedItems.Count == 1)
            {
    
               MessageBox.Show(listView1.SelectedItems[0].Text);
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2019-03-06
      • 2019-07-13
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多