听起来像你想要做的是设置属性Calendar.SelectedDate
和Calendar.VisibleDate
。
我不确定你要去的究竟是什么,因为我不知道用户将选择你的Jan 1/Jun 1日期或第三个星期日与此相关的控件类型。 。只有一个日历吗?如果下面的信息不能帮助你,请多解释一下。
我会从我的一个应用程序粘贴一些VB代码,希望它会帮助你。现在你已经张贴的细节这将成为一个不同的问题
Protected Sub calArrival_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles calArrival.SelectionChanged
SetFormDepartureEntry()
lblArrivalDate.Text = calArrival.SelectedDate.ToLongDateString
calDeparture.SelectedDate = calArrival.SelectedDate
calDeparture.VisibleDate = calArrival.SelectedDate
dtSelectedArrival = "1/1/2000"
'Determine if we need to see 2 months to view all possible departure dates.
If (DatePart(DateInterval.Month, calDeparture.SelectedDate) <> _
DatePart(DateInterval.Month, DateAdd(DateInterval.Day, 14, calDeparture.SelectedDate))) Then
calDeparture2.Visible = True
calDeparture2.SelectedDate = Nothing
calDeparture2.VisibleDate = DateAdd(DateInterval.Month, 1, calDeparture.SelectedDate)
Else
calDeparture2.Visible = False
End If
End Sub
确定。你不知道你需要多少日历,所以你可能想要在代码中创建它们。我会建议在你的标记中使用Panel控件来包含所有可能的结果日历。然后,如您之前所建议的那样,根据需要创建新的Calendar对象并将它们添加到“锚点”面板的Controls集合中。
Calendar objCal = new Calendar();
pnlResultsContainer.Controls.Add(objCal);
就设置选定日期而言,我相信每个日历只能有一个“选定”日期。但是,您可以通过处理Calendar.DayRender事件来设置呈现样式,以及是否启用该日等。也许有人可以帮助我建立一个在C#中动态创建控件的处理程序?我认为它是这样的:
objCal.DayRender += AddressOf(DynamicDayRenderHandler());
如果这不正确,请更正。
确定在处理程序中设置样式的正确日期将是针对作为事件参数的DayRenderEventArgs.Day对象进行编码的问题。我不随便知道如何找到你正在寻找的特定日期/时间间隔,但应该可以在下面的文章有一点研究:
How to: Customize Individual Days in a Calendar Web Server Control
DayRenderEventArgs.Day Property
希望这有助于。
感谢您的评论。我已经更新了我的问题 – 2011-04-29 17:08:31
任何解决方案Guys?请帮忙 – 2011-04-29 17:40:56