在Outlook VSTO Addin

时间:2015-05-17 06:43:47

标签: c# outlook vsto outlook-addin

我想创建一个保存文件对话框,当您按下自定义功能区按钮并将文件名和initialdirectory属性设置为特定值时,该对话框将打开。现在我在表单中创建该对话框。在设计器中,它显示在底部窗格中,因为它不是直接在表单上绘制的项目,或者我在此问题中被告知:Visual Studio Designer Bottom Pane

我的问题是:我应该删除表单并自己创建saveFileDialog吗?或者,如果我保留表单,当我调用form.ShowDialog()时,它会显示我在设计器中添加的saveFileDialog吗?或者我需要调用saveFileDialog.ShowDialog()? (我不能在课外做)。我不确定实现自定义saveFileDialog的正确方法是什么。我曾被告知创建一个表单,现在看来我不应该使用表单。

1 个答案:

答案 0 :(得分:2)

我认为您绝对不需要通过表单使用保存对话框;

在您的功能区代码中添加以下内容:

在顶部

using System.Windows.Forms;

然后这个功能

/// <summary>
/// Return selected file from winform save dialog
/// </summary>
/// <param name="fn">The filename</param>
/// <param name="id">The initial directory</param>
/// <returns>Specified filename</returns>
private string SaveFileTo(string id, string fn)
{
    SaveFileDialog fd = new SaveFileDialog();
    //fd.OverwritePrompt = false;
    fd.AddExtension = true;
    fd.ValidateNames = true;
    fd.FileName = fn;
    fd.InitialDirectory = id;
    //fd.Filter = "PDF files|*.pdf|Other ext like music|*.mp3;*.wma|All File|*.*";
    fd.Filter = "PDF files|*.pdf";
    if (fd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        return fd.FileName;
    return "";
}

并且,在功能区按钮的方法

string s = SaveFileTo(@"C:\Users\Public\Documents", "MyAtt");
//Do something with s
MessageBox.Show(s);

正如您在功能中看到的那样,两行被注释,您可以取消注释它们,或者像您希望应用程序一样修改它们