Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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#Winforms打开应用程序_C#_Winforms - Fatal编程技术网

使用文件C#Winforms打开应用程序

使用文件C#Winforms打开应用程序,c#,winforms,C#,Winforms,所以我在业余时间制作一个记事本复制品只是为了好玩,项目的核心部分都完成了。但是,我无法从文件打开我的应用程序。例如,如果你有一个.txt文件,你双击它,它就会打开应用程序(默认情况下是它的记事本) 我已经知道如何设置默认应用程序,但代码还不支持打开文件,它只能从程序内的菜单打开文件 如何使我的应用程序可以通过文件打开?在您的void Main(string[]args)方法中,args将包含使用应用程序打开的文件的路径。您还可以通过调用string[]Environment.GetCommand

所以我在业余时间制作一个记事本复制品只是为了好玩,项目的核心部分都完成了。但是,我无法从文件打开我的应用程序。例如,如果你有一个.txt文件,你双击它,它就会打开应用程序(默认情况下是它的记事本)

我已经知道如何设置默认应用程序,但代码还不支持打开文件,它只能从程序内的菜单打开文件

如何使我的应用程序可以通过文件打开?

在您的
void Main(string[]args)
方法中,
args
将包含使用应用程序打开的文件的路径。您还可以通过调用
string[]Environment.GetCommandLineArgs()
在应用程序中的任何位置获取它们。在消息框中打印参数以查看传递了哪些参数

下面是一些您可能需要使用的代码:

//以某种形式
已单击公共无效MyButton(对象发送者,事件参数e)
{
字符串[]args=Environment.GetCommandLineArgs();
Show(string.Join(Environment.NewLine,args));
}

我喜欢你的问题。一旦您提供了打开类型文件的支持,并且您发现您的应用程序仍然无法工作,这可能会很有用:您可以在注册表部分HKEY_CLASSES_ROOT下查看扩展名和操作详细信息。它谈到了默认应用程序,但涉及到了更多细节

页面如下:


签出这是否回答了您的问题?使用
MessageBox
作为类似记事本的应用程序示例的奇怪选择。。但是它是有效的。@code陌生人不适用于最终版本,只是为了查看应用程序在以文件作为参数启动时接收到的内容。我见过应用程序接收完整的URI,如
file://
我使用了该解决方案,它似乎可以工作,但是我的应用程序在从文件打开时无法打开。鼠标光标显示它已加载,但应用程序未打开。