Gå til innhold

C#: Trenger litt "oversetting" fra VB til C#


Anbefalte innlegg

Målet er å få lagt til en eller flere items i høyreklikk menyen til Outlook. Men jeg er dårlig kjent med VB, og dessverre ligger det ikke så mye informasjon om Outlook programmering i C# som i VB der ute.

 

Men har funnet frem til denne koden (tatt fra MSDN), som ser ut som det er omtrent akkurat det det jeg trenger. Istedenfor ItemContextMenuDisplay, blir det nok heller ViewContextMenuDisplay, siden jeg vil ha tak i menyen som kommer når man høyreklikker på kalenderen.

 

Om ikke en direkte oversettelse, så en forklaring på VB koden.

 

	Private Sub Application_ItemContextMenuDisplay(ByVal CommandBar As Microsoft.Office.Core.CommandBar, ByVal Selection As Microsoft.Office.Interop.Outlook.Selection) Handles Application.ItemContextMenuDisplay

 ChangeToWebViewButton = CommandBar.Controls.Add(Office.MsoControlType.msoControlButton, , , , True)
	ChangeToWebViewButton.Caption = "Show using WebView"

	If (Selection.Count > 0) Then
		Dim o As Object = Selection(1)
		If Not IsNothing(o) Then
			Dim messageClass As String = o.MessageClass

			If messageClass = "IPM.Note.WebView" Then
				ChangeToWebViewButton.State = Microsoft.Office.Core.MsoButtonState.msoButtonDown
			Else
				ChangeToWebViewButton.State = Microsoft.Office.Core.MsoButtonState.msoButtonUp
			End If
		End If
	End If

	Me.Selection = Selection
End Sub

 

 

Eventuelt om noen vet om noen C# "howto"/dokumentasjon som kanskje beskriver hvordan jeg skal få lagt til nye valg i menyen så hadde det vært kanskje enda mer til hjelp.

 

Takk på forhånd:)

Lenke til kommentar
Videoannonse
Annonse

Ja, det kan jeg jo gjøre.

 

// legger til Ny reservasjons opsjon ved høyreklikk
this.Application.ViewContextMenuDisplay += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ViewContextMenuDisplayEventHandler(Application_ViewContextMenuDisplay);

// Lager en Ny reservasjons knap på høyreklikk menyen i Outlook kalenderen
void Application_ViewContextMenuDisplay(Microsoft.Office.Core.CommandBar CommandBar, Microsoft.Office.Interop.Outlook.View View)
{
Menubtn = CommandBar.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, 4, true) as Office.CommandBarButton;

Menubtn.Style = Office.MsoButtonStyle.msoButtonIconAndCaption;  // Knappen skal ha bilde og text
Menubtn.BeginGroup = true;									  // Den er i en egen "gruppe" slik at vi får
																// skillelinjer rundt gruppen
Menubtn.Caption = "Ny Reservasjon";							 // Navn
Menubtn.Picture = PictureDispConverter.ToIPictureDisp(Properties.Resources.logo);  // Legger til bildet
Menubtn.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(Menubtn_Click);
}																   // Legger til Eventhandleren (den under)

// Kaller på reservasjonsvinduet ved høyreklikk
void Menubtn_Click(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)
{
 //Her legger vi inn hva knappen skal gjøre
}

 

Om det er helt rett måte å gjøre det på, og om koden er så pen det er ikke sikkert :p

Men funke, det gjør det :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...