在VSTO Excel项目中创建弹出日历

时间:2009-04-23 16:35:02

标签: .net vb.net winforms excel vsto

我正在尝试在VSTO Excel工作簿中使用System.Windows.Forms.MonthCalendar控件。我想在单击功能区中的按钮时弹出MonthCalendar,但到目前为止我无法显示控件。

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

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

2 个答案:

答案 0 :(得分:2)

我很确定你需要一个表单来托管winforms控件。 如果您的目标是“只是”日历控件单独出现,那么父窗口会是什么?

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

答案 1 :(得分:1)

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

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