我在资源中添加了 help.txt 文件作为文本文件,并且这样做了:
private void helpButton_Click(object sender, MouseEventArgs e)
{
System.Diagnostics.Process.Start(myProject.Properties.Resources.help);
}
没用,然后我这样试:
private void helpButton_Click(object sender, MouseEventArgs e)
{
System.Diagnostics.Process.Start(@"help.txt");
}
它也没有用,但是这样就可以了:
private void helpButton_Click(object sender, MouseEventArgs e)
{
System.Diagnostics.Process.Start(@"C:\Projects\CourceWork\Resources\help.txt");
}
问题是我不想处理这个hard core defined path,怎么办?
最佳答案
您似乎想用与.txt
文件关联的默认程序打开一个嵌入式资源,通常是记事本。不幸的是,记事本无法读取嵌入的资源。因此,您需要提取资源并将其作为文件保存在磁盘上,然后使用该文件打开记事本。
var helpFile = Path.Combine(Path.GetTempPath(), "help.txt");
File.WriteAllText(helpFile, myProject.Properties.Resources.help);
Process.Start(helpFile);
或者,您可以创建自己的显示文本的 Form
,在我看来,这是一个更好的解决方案(除非您的帮助文件不容易显示,例如 PDF 文件)。
关于c# - 如何用记事本打开嵌入的字符串资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12899567/