VSTO - Gestore di eventi di Outlook in C #
Domanda
Ho bisogno di visualizzare un modulo personalizzato anziché il modulo ispettore predefinito per un elemento appuntamento di Outlook. Voglio farlo in C #.
Esiste un buon tutorial su devx ma utilizza VB e I vuoi usare C #. Quindi ho tradotto il codice in C # e sto riscontrando un problema in cui devo sovrascrivere il gestore eventi Open
per AppointmentItem
(chiamato mcAI
). Nel tute sopra menzionato, dicono di fare quanto segue in VB:
Private Sub tyAI_Open(ByRef Cancel As Boolean) Handles tyAI.Open
Cancel = True
End Sub
che per me si traduce in:
private void mcAI_Open(out bool Cancel)
{
Cancel = true;
}
(Nota che ho provato questo con e senza un parametro out
e ref
e con / senza un oggetto anche come primo parametro)
Comunque dobbiamo registrare che questo è un evento, quindi ho inserito questo codice:
mcAI.Open +=
new Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler(mcAI_Open);
Ma non posso compilare questo come ottengo l'errore:
Nessun sovraccarico per 'mcAI_Open' corrisponde al delegato 'Microsoft.Office.Interop.Outlook.ItemEvents_10_OpenEventHandler'
Qualche idea su come dovrei registrare la mia funzione per l'evento Open
dell'elemento AppointmentItem
? Grazie in anticipo.
(A proposito c'è un MSDN QA che suggerisce che il mio codice dovrebbe funzionare e tuttavia sono ancora bloccato.)
Soluzione
Teoricamente, questo dovrebbe funzionare:
private void mcAI_Open(ref bool Cancel)
{
Cancel = true;
}