[英]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.