Я написал кнопку ленты VSTO для массового изменения объектов на существующем MailItem. Однако он не работает в 100% случаев. Я подозреваю, что приглашение просить меня сохранить электронную почту после изменения темы, препятствует изменению темы.Outlook VSTO отключить запрос с просьбой сохранить сообщение после изменения темы
Как подавить диалог программно, чтобы я мог изменять объекты, а затем отключать диалог после этого.
public void EditSubject()
{
var explorer = _OutlookApplication.ActiveExplorer();
var selection = explorer.Selection;
List<MailItem> mailItems = new List<MailItem>();
foreach(var item in selection)
{
var mailitem = item as MailItem;
if(mailitem != null) mailItems.Add(mailitem);
}
if(mailItems.Count > 0)
{
using (var form = new FormEditSubject())
{
form.Subject = mailItems[0].Subject;
if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
// changing subject works, but does not work 100% of the time.
// Save prompt dialog shows when closing outlook.
mailItems.ForEach(item => item.Subject = form.Subject);
System.Windows.Forms.MessageBox.Show(string.Format("{0} MailItems subject edited to: {1}", mailItems.Count, form.Subject));
}
}
}
}
Пожалуйста, пост соответствующих фрагментов кода. Когда именно отображается подсказка? –
@DmitryStreblechenko добавлен фрагмент кода. Благодарю. – Jake