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);
} 展开
已经搞定,谢谢
//设置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);
} 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
找到个拖放图片的
在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;
}
答案是帮你粘过来的。
在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;
}
答案是帮你粘过来的。
追问
已经搞定,谢谢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询