Надстройка Outlook с использованием .NET

Мы разрабатываем надстройку для 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");
            }
        }
23.08.2008 09:57:28
3 ОТВЕТА

Я не знаю ответа на ваш вопрос, но я очень рекомендую Add-In Express для создания надстройки. См. Http://www.add-in-express.com/add-in-net/ . Я использовал это во многих проектах, включая некоторые коммерческие программы, и это совершенно потрясающе.

Он полностью интегрирует Outlook (и офисную) за вас, поэтому вы просто работаете с ним, как с любой панелью инструментов, и сосредотачиваетесь на специфике того, что вам нужно для этого. Вам никогда не придется беспокоиться о расширяемости Outlook. Настоятельно рекомендуется.

Во всяком случае, просто хотел упомянуть это как что-то, чтобы посмотреть. Это определенно избавит вас от головной боли, если вам удобно использовать сторонний компонент в проекте.

1
23.08.2008 14:28:20

Я не знаю, но ваш код вызывает два вопроса:

  1. Почему вы объявляете «CommandBarControl myCommandbarButton» вместо «CommandBarButton myCommandbarButton»?

  2. Почему вы устанавливаете ширину в 900 пикселей? Это огромно. Я никогда не беспокоюсь об этом параметре в Excel, так как он автоматически изменяет размеры, и я предполагаю, что Outlook будет вести себя так же.

0
20.09.2008 04:36:57

Вы не устанавливаете свойство стиля кнопки панели команд (насколько я могу судить).

Это приводит к тому, что кнопка имеет MsoButtonStyle msoButtonAutomation . Я видел, что заголовок не появляется, если стиль остался на этом.

Попробуйте установить свойство Style в msoButtonCaption .

0
10.03.2009 04:49:50