如何在 Windows 表单中使用默认的 CSV 编辑器打开文件?
How to open a file with the default CSV editor in Windows Forms?
我有一个正在开发的备份程序,它使用 Windows 表格进行设计。
除了一个按钮外,一切正常,所以我将保留整个代码。
我有一个 Button,允许用户从某个位置打开 CSV
文件以在其默认 CSV 编辑器程序(即 Excel、Libre 等)中进行编辑,并且 Button 工作正常,如下所示:
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
String^ CSVLoc = textBox1->Text;
string CSVLoc1 = msclr::interop::marshal_as<std::string>(CSVLoc);
system(("start " + CSVLoc1 + "\SystemIPs.csv").c_str());
}
但是,我想避免使用 system 函数,因为我不喜欢它在启动默认编辑器程序时闪烁命令 window。
我试过:
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
String^ CSVLoc = textBox1->Text;
string CSVLoc1 = msclr::interop::marshal_as<std::string>(CSVLoc);
WinExec(("start " + CSVLoc1 + "\SystemIPs.csv").c_str(), SW_HIDE);
}
但是当我点击按钮时它什么也没做。
WinExec
可以替代我的其他系统功能命令,但这里没有。
按钮的功能不是对我的程序进行任何编辑,因此不需要读取或写入它。只需要它在默认编辑器中打开而不需要弹出命令window。
我已经搜索了几个小时试图找到一个没有运气的解决方案。
我对这里的任何建议持开放态度,即使它使用的是系统功能,但我目前还不知道有一些巧妙的隐藏方式。
该程序专为 Windows 设计,并设置为 运行 作为 Windows 应用程序。使用 CLR 和 .Net 是 4.7.2。正如我提到的一切都很好,只是想找到一种方法来隐藏那个讨厌的命令 window 弹出窗口。
正如 Jimi 所说,您可以使用 Process.Start 方法使用默认编辑器打开 csv 文件。
首先,请添加命名空间引用。
using namespace System::Diagnostics;
其次,您可以尝试使用以下代码打开它。
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ str = textBox1->Text;
Process::Start(str);
}
我有一个正在开发的备份程序,它使用 Windows 表格进行设计。
除了一个按钮外,一切正常,所以我将保留整个代码。
我有一个 Button,允许用户从某个位置打开 CSV
文件以在其默认 CSV 编辑器程序(即 Excel、Libre 等)中进行编辑,并且 Button 工作正常,如下所示:
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
String^ CSVLoc = textBox1->Text;
string CSVLoc1 = msclr::interop::marshal_as<std::string>(CSVLoc);
system(("start " + CSVLoc1 + "\SystemIPs.csv").c_str());
}
但是,我想避免使用 system 函数,因为我不喜欢它在启动默认编辑器程序时闪烁命令 window。
我试过:
private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) {
String^ CSVLoc = textBox1->Text;
string CSVLoc1 = msclr::interop::marshal_as<std::string>(CSVLoc);
WinExec(("start " + CSVLoc1 + "\SystemIPs.csv").c_str(), SW_HIDE);
}
但是当我点击按钮时它什么也没做。
WinExec
可以替代我的其他系统功能命令,但这里没有。
按钮的功能不是对我的程序进行任何编辑,因此不需要读取或写入它。只需要它在默认编辑器中打开而不需要弹出命令window。
我已经搜索了几个小时试图找到一个没有运气的解决方案。
我对这里的任何建议持开放态度,即使它使用的是系统功能,但我目前还不知道有一些巧妙的隐藏方式。
该程序专为 Windows 设计,并设置为 运行 作为 Windows 应用程序。使用 CLR 和 .Net 是 4.7.2。正如我提到的一切都很好,只是想找到一种方法来隐藏那个讨厌的命令 window 弹出窗口。
正如 Jimi 所说,您可以使用 Process.Start 方法使用默认编辑器打开 csv 文件。
首先,请添加命名空间引用。
using namespace System::Diagnostics;
其次,您可以尝试使用以下代码打开它。
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ str = textBox1->Text;
Process::Start(str);
}