我已经设置了imageList和listView。理想情况下,我希望文件名显示在图像下。
已更新 使用item.Tag提到下面我能够移动一些东西。我现在有文件名跟踪选择哪个文件。现在我只需要看看我是否可以在listview中显示文件名。
这是新代码:
private void GetImages()
{
DirectoryInfo dir = new DirectoryInfo(@"c:\pics");
this.listView1.View = View.LargeIcon;
this.imageList1.ImageSize = new Size(67, 100);
this.listView1.LargeImageList = this.imageList1;
int j = 0;
foreach (FileInfo file in dir.GetFiles())
{
try
{
imageList1.Images.Add(file.Name, Image.FromFile(file.FullName));
ListViewItem item = new ListViewItem(file.Name);
item.Tag = file.Name;
item.ImageIndex = j;
this.listView1.Items.Add(item);
j++;
}
catch
{
Console.WriteLine("This is not an image file");
}
}
}
private void listView1_Click(object sender, EventArgs e)
{
ListViewItem item = listView1.SelectedItems[0];
label1.Text = item.Tag.ToString();
int itemIndex = listView1.SelectedIndices[0];
Image img = imageList1.Images[itemIndex];
pictureBox1.Image = img;
}
答案 0 :(得分:0)
好的,我认为我已经简化了其他一些答案。通过这种方式,我可以在图像下显示文件名。此外,当选择图像时,我可以利用它。
我使用item.tag来保存文件名。
private void GetImages()
{
DirectoryInfo dir = new DirectoryInfo(@"c:\pics");
this.listView1.View = View.LargeIcon;
this.imageList1.ImageSize = new Size(100, 100);
this.listView1.LargeImageList = this.imageList1;
int j = 0;
foreach (FileInfo file in dir.GetFiles())
{
try
{
//this.imageList1.Images.Add(Image.FromFile(file.FullName));
imageList1.Images.Add(file.Name, Image.FromFile(file.FullName));
ListViewItem item = new ListViewItem(file.Name);
item.Tag = file.Name;
item.ImageIndex = j;
this.listView1.Items.Add(item);
j++;
}
catch
{
Console.WriteLine("This is not an image file");
}
}
}
现在,在listview1_Click或其他一些号召性用语中,我可以使用以下方法来控制文件名标签。
ListViewItem item = listView1.SelectedItems[0];
txtNewWM.Text = item.Tag.ToString();