winform:用户将文件拖放到我的winform程序上,我的程序怎么能获得这个文件的路径?

C#winform已经搞定,谢谢//设置AllowDrop=true;privatevoidForm1_DragEnter(objectsender,DragEventA... C# winform
已经搞定,谢谢
//设置AllowDrop=true;
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Link;
else e.Effect = DragDropEffects.None;

}

private void Form1_DragDrop(object sender, DragEventArgs e)
{
string path = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
MessageBox.Show(path);

}
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
biyusr
2011-04-26 · TA获得超过1409个赞
知道大有可为答主
回答量:3653
采纳率:79%
帮助的人:2409万
展开全部
找到个拖放图片的
在c#实现拖放。一般要用到DragDrap,DragEnter事件和DoDragDrop方法。为了能够完成拖放,一定设置目标控件的AllowDrop属性为true。

(1)DoDragDrop方法启动拖放操作
txtFileName.DoDragDrop(txtFileName.Text, DragDropEffects.Copy|DragDropEffects.Move);
(2)DragEnter事件
当拖动对象进入目标控件时触发。
(3)DragDrop事件
放下拖放内容时触发。
在任何的事件中都可以调用此方法,一般是放在源控件的MouseDown事件中触发。
下面的代码,首先用OpenFileDialog选择一个jpg文件,设置文本框txtFileName的Text属性为该文件的路径。在txtFileName的MouseDown事件中启动拖放操作,拖放数据为图片的路径数据(string类型)。处理picturebox1的DragEnter事件,以显示拖放效果,处理DragDrop事件,根据拖动的文本信息加载图片到picturebox框。
这里要特别注意的事情是在vs集成开发环境中picturebox的AllowDrop属性无法被智能感知,但它确实是存在的,在Form的load事件直接录入就好了。
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog opd = new OpenFileDialog();
opd.Filter = "JPEG|*.jpg";
opd.ShowDialog();
this.txtFileName.Text = opd.FileName;
}

private void Form3_Load(object sender, EventArgs e)
{
this.pictureBox1.AllowDrop = true;

}

private void txtFileName_MouseDown(object sender, MouseEventArgs e)
{
//txtFileName.AllowDrop = true;
txtFileName.DoDragDrop(txtFileName.Text, DragDropEffects.Copy|DragDropEffects.Move);
}
private void pictureBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}

private void pictureBox1_DragDrop(object sender, DragEventArgs e)
{
Bitmap bits = (Bitmap)Bitmap.FromFile(e.Data.GetData(DataFormats.Text).ToString());
pictureBox1.Image = bits;
}
答案是帮你粘过来的。
追问
已经搞定,谢谢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式