关于 datagridview 拖拽文件解决办法

关于 datagridview 拖拽文件
是这样的,一个窗体上有一个 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 ,没问题呀。。。