(C#)如何通过拖动打开程序中的文件"打开..."

时间:2017-07-01 04:45:20

标签: c# forms

Windows有一项功能,您可以将文件拖到程序或快捷方式上,它会说"打开方式(程序名称)"我希望能够为我的程序执行此操作,当我打开文件时可以转到我的程序的文本编辑器部分。

string filePath = //Find path of file just opened
form_editScript edit = new form_editScript(filePath);
edit.Show();
Hide();

1 个答案:

答案 0 :(得分:1)

为了能够处理“打开方式...”,您需要从args Main方法获取文件路径:

static void Main(string[] args)
{
    string filePath = args.FirstOrDefault();
    ....
    Application.Run(new form_editScript(filePath))

对于拖放部分,您必须将表单的AllowDrop属性设置为true,然后订阅DragEnterDragDrop个事件。在DragEnter检查Data是否为文件,然后允许删除。在DragDrop中,您将获得包含要删除的文件的字符串数组:

private void Form1_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        e.Effect = DragDropEffects.Link;
    }
}

private void Form1_DragDrop(object sender, DragEventArgs e)
{
    string filePath = ((string[]) e.Data.GetData(DataFormats.FileDrop))[0];
    ....