Outlook 2010のアドインを開発しています。
基本的に、選択した電子メールを取得してテキストファイルに保存するボタンがリボンにあります。電子メールに特定の件名が含まれている場合、ハードコードされたファイルパスに自動的に保存されます。そうでない場合は、Windowsフォームが開き、ユーザーにファイルパスの入力を求めます。
ユーザーがパスを選択し、[OK]をクリックすると、保存が行われ、フォームが閉じます...しかし、再び開きます...新しいインスタンスなどを作成しているようです... [キャンセル]または[X]をクリックすると閉じますが、最初に正しく閉じない理由がわかりません。
以下は私のコードです
//This is myRibbon.cs
private void btn_SaveFile_Click(object sender, RibbonControlEventArgs e)
{
//other code
if (subject = "xyz")
{
//other code
textFile.Save();
}
else
{
MyPopup popup = new MyPopup();
popup.ShowDialog();
}
}
//This is MyPopup.cs
private void btnOK_Click(object sender, EventArgs e)
{
var filePath = txtFilePath.Text;
if (!string.IsNullOrWhiteSpace(filePath))
{
SaveEmailToText(filePath);
this.Close();
}
else
{ //show message box with error }
this.Close();
}
private static void SaveEmailToText(string filePath)
{
//other code
textFile.Save();
}
これをかなり簡略化したので、読みやすくなっています。どんな助けでも大歓迎です。