2009-04-23 25 views
1

我想在VSTO Excel工作簿中使用System.Windows.Forms.MonthCalendar控件。当我点击功能区中的按钮时,我希望MonthCalendar弹出,但到目前为止,我无法控制显示。在VSTO Excel工程中创建弹出式日历

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 

日历应弹出在他们点击的地方,但唉,它失败。

回答

1

我最终创建了一个新的System.Windows.Form并将其日历添加到Controls集合中。

不理想,所以我仍然在寻找一个解决方案,但它至少让我弹出日历。

+0

你有你用过的代码吗? – Phil 2011-07-10 07:51:01

2

我敢肯定,你需要一个窗体来托管一个winforms控件。 如果你的目标是“只是”日历控制自己出现,那么父窗口会是什么?

如果你想只是一个简单的日历控件的“外观”,只需调整窗体的UI属性,使其没有可见的边框,是模态等,如果你在WPF中重写,那么你的表单甚至不必看起来像一个形式(即广场等)