2012-04-02 74 views
0

我的是一個奇怪的解決方案。 我想掃描一個特定的字符串(這些特定的字符串已經在一個XML數據文件中)來實現這一點,我想通過以下步驟去做這件事 我將有一個menubaritem來更改添加設置-in(現在沒有必要) 我會在這樣VSTO展望掃描打開項目

http://www.packtpub.com/sites/default/files/Article-Images/vsto-article1-image5.png

http://www.packtpub.com/article/microsoft-office-outlook-programming-vsto-c-sharp-part1

酒吧像新的按鈕一個按鈕,然後說,用戶閱讀所選並在打開的項目閱讀窗格。當我按下按鈕時,我希望代碼掃描主題和正文以匹配我的xml數據,如果存在,則顯示一個消息框。

我儘可能創建一個menuitem和菜單欄按鈕和xml數據,現在我的問題是如何掃描當前正在讀取的項目?

這是thisaddin.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml.Linq; 
using Outlook = Microsoft.Office.Interop.Outlook; 
using Office = Microsoft.Office.Core; 
using System.Windows.Forms; 

namespace Sql_openertake1 
{ 
    public partial class ThisAddIn 
    { 
     private Office.CommandBar menuBar; 
     private Office.CommandBarPopup newMenuBar; 
     private Office.CommandBarButton buttonOne; 
     Office.CommandBarButton PacktButtonA; 
     Office.CommandBar PacktCustomToolBar; 

     private void ThisAddIn_Startup(object sender, System.EventArgs e) 
     { 

     // Verify the PacktCustomToolBar exist and add to the application 
if (PacktCustomToolBar == null) 
{ 
// Adding the commandbar to Active explorer 
Office.CommandBars PacktBars = this.Application. 
ActiveExplorer().CommandBars; 
// Adding PacktCustomToolBar to the commandbars 
PacktCustomToolBar = PacktBars.Add("SQL Opener",Office.MsoBarPosition.msoBarTop, false, true); 
} 
// Adding button to the custom tool bar 
Office.CommandBarButton MyButton1 = (Office. 
CommandBarButton)PacktCustomToolBar.Controls.Add(1, 
missing, missing, missing, missing); 
// Set the button style 
MyButton1.Style = Office.MsoButtonStyle.msoButtonCaption; 
// Set the caption and tag string 
MyButton1.Caption = "Open"; 
MyButton1.Tag = "MY BUTTON"; 
if (this.PacktButtonA == null) 
{ 
// Adding the event handler for the button in the toolbar 
this.PacktButtonA = MyButton1; 
PacktButtonA.Click += new Office. 
_CommandBarButtonEvents_ClickEventHandler(ButtonClick); 
} 
} 
// Button event in the custom toolbar 
private void ButtonClick(Office.CommandBarButton ButtonContrl, 
ref bool CancelOption) 
{ 
// Message box displayed on button click 
MessageBox.Show(ButtonContrl.Caption + " Says Hello World!"); 
} 

     private void AddMenuBar() 
     { 
      try 
      { 
       menuBar = this.Application.ActiveExplorer().CommandBars.ActiveMenuBar; 
       newMenuBar = (Office.CommandBarPopup)menuBar.Controls.Add(
        Office.MsoControlType.msoControlPopup, missing, 
        missing, missing, true); 
       if (newMenuBar != null) 
       { 
        newMenuBar.Caption = "SQL Opener"; 
        buttonOne = (Office.CommandBarButton)newMenuBar.Controls. 
        Add(Office.MsoControlType.msoControlButton, missing, 
         missing, 1, true); 
        buttonOne.Style = Office.MsoButtonStyle. 
         msoButtonIconAndCaption; 
        buttonOne.Caption = "Settings"; 
        buttonOne.FaceId = 0548; 
        buttonOne.Tag = "c123"; 
        buttonOne.Click += new Office._CommandBarButtonEvents_ClickEventHandler(buttonOne_Click); 
        newMenuBar.Visible = true; 
       } 
      } 
      catch (Exception ex) 
      { 
       System.Windows.Forms.MessageBox.Show(ex.Message); 
      } 
     } 

     private void buttonOne_Click(Office.CommandBarButton ctrl, 
      ref bool cancel) 
     { 
      System.Windows.Forms.MessageBox.Show("You clicked: " + ctrl.Caption, 
       "Custom Menu", System.Windows.Forms.MessageBoxButtons.OK); 

     } 


     private void ThisAddIn_Shutdown(object sender, System.EventArgs e) 
     { 
     } 

     private void createnewform() 
     { 
      SAmple_form sform = new SAmple_form(); 
      sform.Text = "Show the Count"; 


     } 

     #region VSTO generated code 

     /// <summary> 
     /// Required method for Designer support - do not modify 
     /// the contents of this method with the code editor. 
     /// </summary> 
     private void InternalStartup() 
     { 
      this.Startup += new System.EventHandler(ThisAddIn_Startup); 
      this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); 
     } 

     #endregion 
    } 
} 

我的C#代碼,這是我的XML數據

<?xml version="1.0" encoding="utf-8" ?> 
<words> 
    <word id="5001">None</word> 
    <word id="5002">Glazed</word> 
    <word id="5005">Sugar</word> 
    <word id="5006">Sprinkles</word> 
    <word id="5003">Chocolate</word> 
    <word id="5004">Maple</word> 

</words> 

感謝您的幫助。

回答