C#WinForm实现一个图片上传框,可实现多张图片上传,上传图片为缩略图,图片可双击查看、可删除
时间: 2023-11-26 10:06:22 浏览: 405
实现多张图片上传 可删除
实现这个功能可以分为以下几个步骤:
1. 在 WinForm 界面上创建一个容器,用于显示上传的图片。
2. 在容器中添加一个“添加图片”按钮,点击后弹出文件选择对话框,选择要上传的图片。
3. 将选择的图片转换成缩略图,并在容器中显示缩略图。
4. 可以双击缩略图查看原图。
5. 可以删除指定的图片。
下面给出一个简单的实现方法:
1. 在 WinForm 界面上添加一个 Panel 控件,用于显示上传的图片。
2. 在 Panel 上添加一个 Button 控件,用于添加图片。在按钮的 Click 事件中添加以下代码:
```csharp
private void btnAdd_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = true;
ofd.Filter = "图片文件|*.jpg;*.jpeg;*.png;*.bmp";
if (ofd.ShowDialog() == DialogResult.OK)
{
foreach (string fileName in ofd.FileNames)
{
// 将选择的图片转换成缩略图并添加到 Panel 中
AddThumbnail(fileName);
}
}
}
```
3. 在 AddThumbnail 方法中实现将选择的图片转换成缩略图,并在 Panel 中显示缩略图。以下是实现代码:
```csharp
private void AddThumbnail(string fileName)
{
// 创建一个 PictureBox 控件用于显示缩略图
PictureBox picBox = new PictureBox();
picBox.SizeMode = PictureBoxSizeMode.StretchImage;
picBox.Width = 100;
picBox.Height = 100;
// 将缩略图添加到 Panel 中
panel1.Controls.Add(picBox);
// 加载原图
Image originalImage = Image.FromFile(fileName);
// 创建缩略图
Image thumbnailImage = originalImage.GetThumbnailImage(100, 100, null, IntPtr.Zero);
// 将缩略图显示在 PictureBox 中
picBox.Image = thumbnailImage;
// 双击缩略图查看原图
picBox.DoubleClick += (s, e) =>
{
Form frm = new Form();
frm.Text = "查看图片";
frm.ClientSize = originalImage.Size;
PictureBox picBox2 = new PictureBox();
picBox2.SizeMode = PictureBoxSizeMode.Zoom;
picBox2.Dock = DockStyle.Fill;
picBox2.Image = originalImage;
frm.Controls.Add(picBox2);
frm.ShowDialog();
};
// 添加删除按钮
Button btnDelete = new Button();
btnDelete.Text = "删除";
btnDelete.Width = 50;
btnDelete.Height = 20;
btnDelete.Tag = picBox;
btnDelete.Click += (s, e) =>
{
PictureBox pb = (PictureBox)((Button)s).Tag;
panel1.Controls.Remove(pb);
};
picBox.Controls.Add(btnDelete);
}
```
在 AddThumbnail 方法中,先创建一个 PictureBox 控件用于显示缩略图,并将其添加到 Panel 中。然后加载原图,创建缩略图,并将缩略图显示在 PictureBox 中。接着为 PictureBox 的 DoubleClick 事件添加一个事件处理程序,用于在新窗口中查看原图。最后为 PictureBox 添加一个删除按钮,点击后从 Panel 中删除该 PictureBox。
阅读全文