Мы разрабатывали надстройку Outlook с использованием Visual Studio 2008. Однако я столкнулся со странным поведением при добавлении кнопки команды на настраиваемую панель команд. Это поведение отражается, когда мы добавляем кнопку в окна ответа, ответа всем и пересылки. Проблема в том, что заголовок командной кнопки не отображается, хотя при отладке с использованием VS заголовок отображается правильно. Но кнопка без заголовка при просмотре в Outlook (2003).
У меня есть фрагмент кода, как показано ниже. Любая помощь будет оценена по достоинству.
private void AddButtonInNewInspector(Microsoft.Office.Interop.Outlook.Inspector inspector)
{
try
{
if (inspector.CurrentItem is Microsoft.Office.Interop.Outlook.MailItem)
{
try
{
foreach (CommandBar c in inspector.CommandBars)
{
if (c.Name == "custom")
{
c.Delete();
}
}
}
catch
{
}
finally
{
//Add Custom Command bar and command button.
CommandBar myCommandBar = inspector.CommandBars.Add("custom", MsoBarPosition.msoBarTop, false, true);
myCommandBar.Visible = true;
CommandBarControl myCommandbarButton = myCommandBar.Controls.Add(MsoControlType.msoControlButton, 1, "Add", System.Reflection.Missing.Value, true);
myCommandbarButton.Caption = "Add Email";
myCommandbarButton.Width = 900;
myCommandbarButton.Visible = true;
myCommandbarButton.DescriptionText = "This is Add Email Button";
CommandBarButton btnclickhandler = (CommandBarButton)myCommandbarButton;
btnclickhandler.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(this.OnAddEmailButtonClick);
}
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "AddButtInNewInspector");
}
}





Я не знаю ответа на ваш вопрос, но я настоятельно рекомендую Add-In Express для выполнения надстройки. См. http://www.add-in-express.com/add-in-net/. Я использовал это во многих проектах, в том числе в некоторых коммерческих программах, и это совершенно потрясающе.
Он выполняет всю интеграцию с Outlook (и офисом) за вас, поэтому вы просто работаете с ним, как с любой панелью инструментов, и просто сосредотачиваетесь на специфике того, что вам нужно для этого. Вам никогда не придется беспокоиться о расширяемости Outlook. Настоятельно рекомендуется.
В любом случае, просто хотел упомянуть об этом как о чем-то, на что стоит обратить внимание. Это определенно избавит вас от головной боли, если вам удобно использовать сторонний компонент в проекте.
Я не знаю, но ваш код вызывает два вопроса:
Почему вы объявляете CommandBarControl myCommandbarButton вместо CommandBarButton myCommandbarButton?
Почему вы устанавливаете ширину 900 пикселей? Это огромно. Я никогда не беспокоился об этом параметре в Excel, поскольку он автоматически изменяется, и я предполагаю, что Outlook будет вести себя так же.
Вы не устанавливаете свойство стиля кнопки панели команд (насколько я могу судить).
Это приводит к тому, что кнопка имеет MsoButtonStyle msoButtonAutomation. Я видел, как заголовок не появлялся, если оставить стиль на этом.
Попробуйте установить для свойства Style значение msoButtonCaption.