Winform-拖拽与文件管理器操作
图形化界面
将PictureBox放下panel上面,同时设置在父容器停靠
事件
Click
给PictureBox添加点击事件
AllowDrop
设置AllowDrop为True
**AllowDrop:**该值指示控件是否可以接受用户拖放到它上面的数据
DragDrop|DropEnter
双击DragDrop和DropEnter两个事件
DropEnter: 等待发生放置操作
DragDrop: 提供用于启动拖放操作的帮助器方法和字段(包括开始拖放操作的方法),并提供用于添加和移除拖放相关事件处理程序的工具
主要实现功能
功能一:
将jpg|png格式的图片拖入窗体后,PictureBox显示拖入的图片。
功能二:
点击图片,出现文件资源管理器来限定选择后缀名为jpg|png的文件
DragEnter代码
DataFormats.FileDrop: 指定Windows 文件放置格式
DragDropEffects: Copy、Move和 Scroll效果的组合
e.Effect: 获取或设置拖放操作中的目标拖放效果。
GetDataPresent: 确定存储在此实例中的数据是否与指定的格式相关联,或者是否可以转换为指定的格式。
private void panel1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.All;
else
e.Effect = DragDropEffects.None;
}
DrapDrop代码
拖入后的事件
private void panel1_DragDrop(object sender, DragEventArgs e)
{
// 获得路径
string path = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
// 获得文件后缀名
var Extensionname = Path.GetExtension(path);
if (Extensionname == ".jpg" || Extensionname == ".png")
this.pictureBox1.Image = Image.FromFile(path);
else
MessageBox.Show("请上传jpg或者png格式图片");
}
Click代码
Multiselect: 是否启用文件多选择
.png|*.png :.png 为显示名称 *.png 为后缀名
private void pictureBox1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "请选择图片";
ofd.InitialDirectory = @"D:\";
ofd.Multiselect = false;
ofd.Filter = ".png|*.png|.jpg|*.jpg";
ofd.ShowDialog();
//获得我们在文件夹中所选择的全路径
string path = ofd.FileName;
// 如果没有选择文件则不执行
if(!string.IsNullOrEmpty(path))
this.pictureBox1.Image = Image.FromFile(path);
}