mercoledì 6 luglio 2011

vsto 4 creazione di un pulsante per Outlook 2010





Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_creazione-di-un-pulsante-per-outlook-201_1052.aspx riguardante la creazione di una barra per Outlook tramite VSTO 4.





Introduzione
In quest’articolo, vedremo come creare un pulsante per la barra degli strumenti di Microsoft Outlook 2010, tramite la tecnologia VSTO con il linguaggio Visual Basic Net e C#



Creazione del progetto
Si apra Visual Studio 2010, e dopo aver scelto il linguaggio di nostro interesse, selezioniamo la voce Office 2010, nella parte destra, selezioniamo la voce “Componente aggiuntivo per Outlook 2010” il tutto come mostrato in figura 1







Figura 1




Dopo aver confermato il tutto tramite il pulsante ok, verrà aperta la finestra in visualizzazione codice, a differenza degli altri modelli, per word, excel, per Outlook non abbiamo una parte designer, ma solo codice.
A livello di form, si crea un oggetto di tipo commandBar, che avrà il compito di aggiungere alla barra di outlook un pulsante. Sempre a livello di form, si crea un oggetto di tipo pulsante, il quale verrà applicato alla barra.
Di conseguenza avremmo due oggetti, uno per la gestione della barra e l’altro per la gestione del pulsante.
Qui di seguito si riporta la dichiarazione di tale operazione.



VB.Net



Dim ComBar As Microsoft.Office.Core.CommandBar



Dim pulsante As Microsoft.Office.Core.CommandBarButton





C#



Microsoft.Office.Core.CommandBar ComBar;



Microsoft.Office.Core.CommandBarButton pulsante;





Si crea una funzione che permetta la creazione della barra per Outlook, inizializzando l’oggetto CommandBar, creato in precedenza. Qui di seguito si riporta il frammento di codice.




VB.Net



' funzione per la creazione della barra



Private Sub CreaBarra()



ComBar = Globals.ThisAddIn.Application.ActiveExplorer().CommandBars.Add(



"Barranuova",



Office.MsoBarPosition.msoBarTop,



False,



True)



ComBar.Protection = Office.MsoBarProtection.msoBarNoCustomize



ComBar.Visible = True



End Sub





C#



//funzione per la creazione della barra



private void CreaBarra()



{



ComBar = Globals.ThisAddIn.Application.ActiveExplorer().CommandBars.Add(



"Barranuova",



Office.MsoBarPosition.msoBarTop,



false,



true);



ComBar.Protection = Office.MsoBarProtection.msoBarNoCustomize;



ComBar.Visible = true;



}









Ora dobbiamo creare una funzione per la creazione del pulsante, inizializzando l’oggetto pulsante creato in precedenza.
Si crea anche un gestore di evento click per tale pulsante.




VB.Net



'funzione per la creazione del pulsante



Private Sub CreaPulsante()



'Aggiungo il pulsante alla barra ed imposto la proprietà testo oltre al gestore di evento click



pulsante = CType(ComBar.Controls.Add(Office.MsoControlType.msoControlButton, Type.Missing, Type.Missing, Type.Missing, True), Office.CommandBarButton)







pulsante.Caption = "Pulsante nuovo"



pulsante.Style = Office.MsoButtonStyle.msoButtonIconAndCaption



pulsante.TooltipText = "Testo descrittivo"



'gestore dell'evento click



AddHandler pulsante.Click, AddressOf pulsante_Click



End Sub





Sub pulsante_Click(ByVal Ctrl As Office.CommandBarButton, ByRef CancelDefault As Boolean)



System.Windows.Forms.MessageBox.Show("Prova2")



End Sub









C#



//funzione per la creazione del pulsante



private void CreaPulsante()



{



//aggiungo il pulsante alla barra ed imposto la proprietà testo oltre al gestore di evento click



pulsante = ComBar.Controls.Add(Office.MsoControlType.msoControlButton, Type.Missing, Type.Missing, Type.Missing, true) as Office.CommandBarButton ;



pulsante.Caption = "Pulsante nuovo";



pulsante.Style = Office.MsoButtonStyle.msoButtonIconAndCaption;



pulsante.TooltipText = "Testo descrittivo";



//gestore dell'evento click



pulsante.Click += new Office._CommandBarButtonEvents_ClickEventHandler(pulsante_Click);



}



void pulsante_Click(Office.CommandBarButton Ctrl, ref bool CancelDefault)



{



System.Windows.Forms.MessageBox.Show("Prova");



}





Le funzioni appena create, devono essere richiamata nell’evento del caricamento della nostra applicazione Outlook e precisamente nell'evento StartUp.






VB.Net



Private Sub ThisAddIn_Startup() Handles Me.Startup



CreaBarra()



CreaPulsante()



End Sub





C#



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



{



CreaBarra();



CreaPulsante();



}





Ora non resta che eseguire la nostra applicazione per vedere il risultato, il tutto come mostrato in figura 2










Figura 2



Conclusioni




L’articolo ha voluto fornire le basi per la creazione di un semplice pulsante per la barra di Microsoft Outlook 2010, fornendo al lettore le basi per iniziare a programmare in ambiente Office 2010, tramite Visual Studio Tools For Office (VSTO 4).


Nessun commento: