Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
双击打开文件c#_C#_File_Listbox_Double Click - Fatal编程技术网

双击打开文件c#

双击打开文件c#,c#,file,listbox,double-click,C#,File,Listbox,Double Click,我有一个充满文件路径的列表框。有人知道双击文件时如何打开该文件的默认程序吗?例如,如果列表框中的一项显示“c:\test.txt”,如何在记事本中打开它?如果它是“c:\inetpub\wwwroot\sitetest\test.asp”,如何在默认的asp编辑器中打开它?谢谢。将文件名传递给方法您可以使用Process/ProcessStartInfo类在windows中使用默认应用程序处理程序执行文件 例如: ProcessStartInfo psi = new ProccessStartI

我有一个充满文件路径的列表框。有人知道双击文件时如何打开该文件的默认程序吗?例如,如果列表框中的一项显示“c:\test.txt”,如何在记事本中打开它?如果它是“c:\inetpub\wwwroot\sitetest\test.asp”,如何在默认的asp编辑器中打开它?谢谢。

将文件名传递给方法

您可以使用Process/ProcessStartInfo类在windows中使用默认应用程序处理程序执行文件

例如:

ProcessStartInfo psi = new ProccessStartInfo();
psi.FileName = "myfile.txt";
Process p = new Process();
p.StartInfo = psi;
p.Start();

请记住,p.Start()可以抛出您必须处理的异常,不同版本的windows的行为略有不同。我知道,如果没有默认的文件类型处理程序,Win7/Vista将弹出“应用程序选择器”对话框,但在某些版本中,您只会得到一个异常。

这并不能完全模拟windows资源管理器中的双击操作。例如,对于AutoCAD,加载了正确的版本,但当我们将文件路径发送到Process.Start时,出现softlock license manager错误

System.Diagnostics.Process.Start(dwgFilePath);
要完全模拟windows资源管理器中的双击,必须将路径传递到explorer.exe

System.Diagnostics.Process.Start("explorer.exe", dwgFilePath);

非常感谢。现在,在一个相关的注释中,我如何在双击列表框时获得所选项目?我原以为是listbox.SelectedValue,但当我双击时,它返回null。再次感谢!非常感谢。我想应该是selectedvalue.tostring()。