关于 datagridview 拖拽文件解决办法
关于 datagridview 拖拽文件
是这样的,一个窗体上有一个 datagridview 控件···
现在我需要拖拽一个文件到这个 datagridview 上。获取这个文件的路径。
我已设置了 datagridview 的 AllowDrop为true,注册了 DragDrop 和DragEnter事件··
DragDrop:
DragEnter:
现在是根本就没有进入这个方法···
不知什么原因··
求解····
------解决思路----------------------
你好,首先AllowDrop 属性为true,然后要在DragEnter事件里这么写
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[] filePath = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in filePath )
{
//file就是单个文件路径
}
}
------解决思路----------------------
首先AllowDrop 属性为true ,没问题呀。。。
是这样的,一个窗体上有一个 datagridview 控件···
现在我需要拖拽一个文件到这个 datagridview 上。获取这个文件的路径。
我已设置了 datagridview 的 AllowDrop为true,注册了 DragDrop 和DragEnter事件··
DragDrop:
private void dgv_openJsonFile1_DragDrop(object sender,DragEventArgs e) {
MessageBox.Show("dgv_openJsonFile1_DragDrop");
if(!e.Data.GetDataPresent(DataFormats.FileDrop)) {
return;
}
var path = e.Data.GetData(DataFormats.FileDrop) as string[];
if(path != null && path.Length > 0) {
var f = path[0];
if(!string.IsNullOrEmpty(f)) {
MessageBox.Show(f);
}
}
}
DragEnter:
private void dgv_openJsonFile1_DragEnter(object sender,DragEventArgs e) {
MessageBox.Show("dgv_openJsonFile1_DragEnter");
if(e.Data.GetDataPresent(DataFormats.FileDrop)) {
e.Effect = DragDropEffects.Link;
} else {
e.Effect = DragDropEffects.None;
}
}
现在是根本就没有进入这个方法···
不知什么原因··
求解····
------解决思路----------------------
你好,首先AllowDrop 属性为true,然后要在DragEnter事件里这么写
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[] filePath = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in filePath )
{
//file就是单个文件路径
}
}
------解决思路----------------------
private void dataGridView1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Link;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void dataGridView1_DragDrop(object sender, DragEventArgs e)
{
if (!e.Data.GetDataPresent(DataFormats.FileDrop))
{
return;
}
var path = e.Data.GetData(DataFormats.FileDrop) as string[];
if (path != null && path.Length > 0)
{
var f = path[0];
if (!string.IsNullOrEmpty(f))
{
MessageBox.Show(f);
}
}
}
首先AllowDrop 属性为true ,没问题呀。。。