C#新建窗口拖拽文件到窗口显示图片,并获取路径
时间: 2023-06-19 07:07:19 浏览: 154
你可以使用C#的Windows Forms来实现这个功能。首先,需要在窗口中添加一个PictureBox控件和一个OpenFileDialog控件。
然后,在窗口加载时,注册PictureBox控件的DragEnter和DragDrop事件,以便接收拖拽文件的事件。在DragEnter事件中,需要检查拖拽的文件是否为图片文件,如果是,则允许拖拽操作,在DragDrop事件中,获取拖拽文件的路径,并将路径赋值给PictureBox控件的Image属性,以显示图片。
以下是示例代码:
```
private void Form1_Load(object sender, EventArgs e)
{
pictureBox1.AllowDrop = true;
pictureBox1.DragEnter += new DragEventHandler(pictureBox1_DragEnter);
pictureBox1.DragDrop += new DragEventHandler(pictureBox1_DragDrop);
}
private void pictureBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in files)
{
if (IsImageFile(file))
{
e.Effect = DragDropEffects.Copy;
return;
}
}
}
e.Effect = DragDropEffects.None;
}
private void pictureBox1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in files)
{
if (IsImageFile(file))
{
pictureBox1.Image = Image.FromFile(file);
//获取文件路径
textBox1.Text = file;
return;
}
}
}
}
private bool IsImageFile(string file)
{
string ext = Path.GetExtension(file).ToLower();
return ext == ".jpg" || ext == ".jpeg" || ext == ".png" || ext == ".bmp" || ext == ".gif";
}
```
在上面的代码中,IsImageFile方法用于判断文件是否为图片文件,可以根据需要修改支持的图片格式。
获取文件路径的代码为:textBox1.Text = file;,可以将其替换为你需要的代码,比如将路径保存到变量中。
阅读全文