Сведения о вопросе

Getthesound

23:43, 10th August, 2020

Теги

.net   outlook   add-in    

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

Просмотров: 466   Ответов: 3

Мы разрабатываем надстройку Outlook с использованием Visual Studio 2008. Однако я столкнулся со странным поведением при добавлении командной кнопки в пользовательскую панель команд. Это поведение отражается, когда мы добавляем кнопку в ответ, ответить всем и вперед windows. Проблема в том, что заголовок командной кнопки не виден, хотя при отладке с помощью 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");
            }
        }



  Сведения об ответе

qwerty101

12:59, 18th August, 2020

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

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

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


  Сведения об ответе

lesha

20:41, 4th August, 2020

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

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

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


  Сведения об ответе

darknet

01:17, 7th August, 2020

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться