2009-04-23 4 views
1

Ich versuche, das System.Windows.Forms.MonthCalendar-Steuerelement in einer VSTO Excel-Arbeitsmappe zu verwenden. Ich möchte, dass der MonthCalendar angezeigt wird, wenn ich auf eine Schaltfläche in der Multifunktionsleiste klicke, aber bisher kann das Steuerelement überhaupt nicht angezeigt werden.Erstellen eines Popup-Kalenders in einem VSTO-Excel-Projekt

Private Sub DeliveryDateFromCalendarButton_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles DeliveryDateFromCalendarButton.Click 
    Dim selectedFiscalYear As String = Me.FiscalYearDropDown.SelectedItem.Label 
    Dim cal As System.Windows.Forms.MonthCalendar = New System.Windows.Forms.MonthCalendar() 

    cal.Location = New System.Drawing.Point(Cursor.Position.X, Cursor.Position.Y) 
    cal.Show() 
End Sub 

Der Kalender sollte an der Stelle angezeigt werden, auf die er geklickt hat, aber es schlägt leider fehl.

Antwort

1

Ich habe am Ende eine neue System.Windows.Form erstellt und meinen Kalender zu seiner Controls-Sammlung hinzugefügt.

Nicht ideal, also suche ich immer noch nach einer Lösung, aber es bringt mir wenigstens einen Pop-up-Kalender.

+0

Haben Sie den Code, den Sie dafür verwendet haben? – Phil

+1

Ich denke, er meint, er hat nur einen Knopfklick, der eine Form.Show gemacht hat und hatte den Kalender auf, im Gegensatz zu direkt aus dem Band, was möglich ist, glaube ich. –

+0

Das stimmt, @AnonymousType –

2

Ich bin ziemlich sicher, dass Sie ein Formular benötigen, um ein winforms-Steuerelement zu hosten. Wenn Ihr Ziel war, "nur" das Kalender-Steuerelement selbst erscheinen zu lassen, was wäre dann das Eltern-Fenster?

Wenn Sie das "Aussehen" nur eines Kalender-Steuerelements wollen, das einfach genug ist, ändern Sie einfach die UI-Eigenschaften des Formulars, so dass es keinen sichtbaren Rahmen hat, modal ist, usw., wenn Sie in WPF dann Ihr Formular umschreiben muss nicht einmal wie ein Formular aussehen (zB Quadrat usw.)