以模态形式拖放问题

时间:2018-08-14 15:03:39

标签: c# winforms drag-and-drop

我要在我的MDI容器窗体中打开一个MDI子窗体,然后从该子窗体中打开另一个窗体,如下所示:

frmMyForm frm = new frmMyForm();
frm.ShowDialog();

此模式窗体具有拖放到DataGridView的能力(将文件从Windows资源管理器拖放到DataGridView的能力)。 现在的问题是,在我的开发PC上,拖放工作正常,但是当我将其传输到客户端计算机时,它无法正常工作,我发现在客户端计算机上运行拖放事件时,并没有触发拖放事件。 知道问题是什么吗?

我的活动如下:

private void dgvDocuments_DragEnter(object sender, DragEventArgs e)
{
    //e.Effect = DragDropEffects.Copy;
    //MessageBox.Show("Drag Enter - " + e.Data.GetDataPresent(typeof(System.String)));

    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        e.Effect = DragDropEffects.Copy;
    }
    else
    {
        e.Effect = DragDropEffects.None;
    }
}

private void dgvDocuments_DragDrop(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        string[] strFiles = (string[])e.Data.GetData(DataFormats.FileDrop);
    }
}

private void dgvDocuments_DragOver(object sender, DragEventArgs e)
{
    // MessageBox.Show("Drag Over - " + e.Data.GetDataPresent(typeof(System.String)));
    if (!e.Data.GetDataPresent(typeof(System.String)))
    {
        e.Effect = DragDropEffects.None;
        return;
    }
    else
    {
        e.Effect = DragDropEffects.Copy;
    }
}

此外,我想提到的是,我创建了一个具有dgv和拖放功能的表单的小型应用程序,以查看拖放功能是否可以在此表单应用程序中使用。它正在工作。

0 个答案:

没有答案