【问题标题】:How to black out specific days of the week (datepicker) [VB]如何涂黑一周中的特定日子(日期选择器)[VB]
【发布时间】:2014-08-04 12:19:53
【问题描述】:

我想知道是否可以从日历 (DatePicker) 中设置特定日期不可用,更具体地说是每周一和周二。我发现了类似的线程(How do create a DatePicker with only Sundays enabled?Disable specific days of the week on jQuery UI datepicker)关于黑化日期,但是,我无法为我的特定目标修改他们的代码。我正在用 VB.NET (WPF) 编写这个应用程序。

到目前为止,我使用的用于删除日期的函数是:

Datepicker1.BlackoutDates.AddDatesInPast()
Datepicker2.BlackoutDates.Add(New CalendarDateRange(DateTime.Now.AddDays(1), DateTime.MaxValue))

第一个函数将遮蔽过去的日期,第二个函数将遮蔽所有未来的日期。因为第二个函数需要“DateRange”,所以我无法根据需要更改此函数。

提前致谢

杰瑞

【问题讨论】:

    标签: wpf vb.net datepicker


    【解决方案1】:

    我修改了其中一个示例并想出了这个。
    它对我有用。

        private void MyDatePicker_CalendarOpened(object sender, RoutedEventArgs e)
        {
            MyDatePicker.DisplayDateStart = DateTime.Now;
            MyDatePicker.DisplayDateEnd = DateTime.Now + TimeSpan.FromDays(1000);
    
            var minDate = MyDatePicker.DisplayDateStart ?? DateTime.MinValue;
            var maxDate = MyDatePicker.DisplayDateEnd ?? DateTime.MaxValue;
    
            for (var d = minDate; d <= maxDate &&  DateTime.MaxValue >  d; d = d.AddDays(1))
            {
                if (d.DayOfWeek == DayOfWeek.Monday || d.DayOfWeek == DayOfWeek.Tuesday)
                {
                    MyDatePicker.BlackoutDates.Add(new CalendarDateRange(d));
                }
            }
        }
    

    还有一个奖励:Prevent Certain Dates from Being Selected

    【讨论】:

      【解决方案2】:

      感谢 Okuma Scott,这是一些有用的反馈!我根据我的具体需求将您的代码重写为 VB 语言。

      包含的代码将检查明年的所有日子,并将所有星期一和星期二涂黑。

      Private Sub Datepicker_CalendarOpened(sender As Object, e As RoutedEventArgs) Handles Datepicker.CalendarOpened
              Dim currDate As Date = DateTime.Now
              Dim maxDate As Date = DateTime.Now.AddDays(356)
      
          While (currDate < maxDate)
              If currDate.DayOfWeek = DayOfWeek.Monday Or currDate.DayOfWeek = DayOfWeek.Tuesday Then
                  DatumSelectie.BlackoutDates.Add(New CalendarDateRange(currDate))
              End If
              currDate = currDate.AddDays(1)
          End While
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 2012-12-20
        • 2021-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-11
        • 2019-03-22
        • 2012-12-07
        相关资源
        最近更新 更多