如何在列表视图控件中加载具有原始名称的图像,并通过单击获取图像名称
本文关键字:图像 获取 单击 原始 视图 列表 控件 加载 | 更新日期: 2023-09-27 18:21:57
我正在创建一个简单的图像库,在这里我需要使用原始名称从目录加载的图像。我使用了图像列表和列表视图控件来完成这个任务。首先,我在图像视图控件中加载图像,并通过创建缩略图在列表视图控件中显示图像。
我无法在列表视图控件中获取图像的原始名称。我还想在点击图片时获得图片的名称。
这是我的代码
private void Form1_Load(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(@"E:'mypics");
foreach (FileInfo file in dir.GetFiles())
{
imageList1.Images.Add(Image.FromFile(file.FullName));
}
listView1.View = View.LargeIcon;
imageList1.ImageSize = new Size(100, 100);
listView1.LargeImageList = this.imageList1;
ListViewItem item;
for (int i = 0; i < this.imageList1.Images.Count; i++)
{
item = new ListViewItem();
item.ImageIndex = i;
item.Text = "Image " + i.ToString();
listView1.Items.Add(item);
}
}
在ListView控件中显示文件:
dir = new DirectoryInfo(Server.MapPath("~/Images/"));
lvImages.DataSource = dir.GetFiles("*.*");
lvImages.DataBind();
设计中(显示文件名):
<asp:Literal ID="ltrImagePath" runat="server" Text='<%# Container.DataItem.ToString() %>'></asp:Literal>
我非常感谢@Volodymyr Melnychuk,他指导我达到了要求。
private列表文件名;private void Form1_Load(对象发送方,EventArgs e){_filename=new List();
DirectoryInfo dir = new DirectoryInfo(@"E:'mypics");
foreach (FileInfo file in dir.GetFiles())
{
var image = Image.FromFile(file.FullName);
_filenames.Add(file.Name);
imageList1.Images.Add(image);
}
listView1.View = View.LargeIcon;
imageList1.ImageSize = new Size(100, 150);
listView1.LargeImageList = imageList1;
for (int i = 0; i < imageList1.Images.Count; i++)
{
var item = new ListViewItem();
item.ImageIndex = i;
item.Text =_filenames[i];
listView1.Items.Add(item);
}
}
他上面的代码是有效的,但后来我需要双击列表视图项名称。我在MSDN上找到了一些帮助。
这是代码。
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (listView1.SelectedItems.Count == 1)
{
MessageBox.Show(listView1.SelectedItems[0].Text);
}
}