簡體   English   中英

VSTO加載項保存文件對話框

[英]VSTO Addin Save File Dialog

我有一個VSTO加載項,該加載項具有一個帶有saveFileDialog的表單。 我想將特定的文件名和路徑傳遞給saveFileDialog來設置屬性FileName和InitialDirectory。 問題是我能看到的唯一方法是修改InitializeComponent()和Form構造函數以使用參數filename和設置這些屬性的路徑。 問題是Visual Studio說不要修改文件的那部分,甚至會刪除在我嘗試該方法時發生的添加/更改的代碼。

傳遞這些變量以設置這些屬性的正確方法是什么? 我可以不使用形式使用saveFileDialog還是不必要?

謝謝

編輯:

public partial class Form2 : Form
{
    internal string filename;
    internal string path;

    public Form2(string filename, string path)
    {
        this.filename = filename;
        this.path = path;
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        saveFileDialog2.FileName = filename;
        saveFileDialog2.InitialDirectory = path;

    }
}

並使用以下形式:

var frm2 = new Form2(filename, path);
DialogResult result = frm2.ShowDialog();

我在按鈕單擊處理程序中將此按鈕稱為添加到功能區組的按鈕。

這樣可以嗎? 在修改Initialize組件以接受參數之前,但由於您不應該使用該方法,因此我擺脫了更改,將其更改為我在此處粘貼的內容。

如果我不清楚我要做什么,則彈出一個保存文件對話框,其中已設置文件名和初始目錄。

您需要一個事件處理程序來做到這一點。 例如添加一個按鈕。 在button_Click方法中,在saveFileDialog實例上調用ShowDialog方法。 MSDN中的此示例顯示了一個使用文本擴展名保存文件的示例。

編輯

private void button1_Click(object sender, EventArgs e)
{

    saveFileDialog1.FileName = "DefaultName.txt";
    saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";


    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {

        using (StreamWriter streamWriter = new StreamWriter(saveFileDialog1.FileName))
            streamWriter.Write("some text");

    }
}

在這里,我將saveFileDialog放置在表單中,但在該事件處理程序中設置了默認名稱和....

暫無
暫無

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

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