簡體   English   中英

如何使用 Windows 窗體中的默認 CSV 編輯器打開文件?

[英]How to open a file with the default CSV editor in Windows Forms?

我有我正在開發的這個備份程序,它使用 Windows 窗體進行設計。
除了一個按鈕外,一切都運行良好,因此我將保留整個代碼。
我有一個按鈕,它允許用戶從某個位置打開一個CSV文件以在他們的默認 CSV 編輯器程序(即 Excel、Libre 等)中進行編輯,並且該按鈕工作正常:

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());
}

但是,我想避免使用系統功能,因為我不喜歡它在啟動默認編輯器程序時閃爍命令窗口。

我試過了:

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作為我其他系統功能命令的替代品,但不是在這里。

該按鈕的功能不是從我的程序中進行任何編輯,因此不需要對其進行讀取或寫入。 只需要它在沒有命令窗口彈出窗口的默認編輯器中打開即可。

我已經搜索了幾個小時試圖找到一個沒有運氣的解決方案。
我對這里的任何建議持開放態度,即使它正在使用系統功能,但我目前不知道有一些巧妙的隱藏方式。

該程序僅適用於 Windows,並設置為作為 Windows 應用程序運行。 使用 CLR 和 .Net 是 4.7.2。 正如我所提到的,一切正常,只是想找到一種方法來隱藏那個討厭的命令窗口彈出窗口。

正如吉米所說,您可以使用 Process.Start Method 使用默認編輯器打開一個 csv 文件。

首先,請添加命名空間引用。

using namespace System::Diagnostics;

其次,您可以嘗試以下代碼打開它。

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
        String^ str = textBox1->Text;
        Process::Start(str);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM