qiang 发表于 2016-3-9 08:16:07

InputMan data设定的问题

在data日期控件,怎么设定指定的某一天显示红色,例:我想把10月1号设定成节假日,让这2016年的这一天变成红色,效果:我单击data控件显示的日期列表,切到10月1日,显示是红色。

qiang 发表于 2016-3-14 18:25:59

Alice 发表于 2016-3-14 17:39
如果你有其他需求,可以尝试其他的Holiday类型或者自行实现Holiday接口定制所需要的特殊日期的规则。

...

上面这个帖子的代码你看看。。。

Leo 发表于 2016-3-9 11:15:25

本帖最后由 Leo 于 2016-3-9 11:16 编辑

            var holidayStyle = new HolidayStyle("PublicHolidays");
            this.gcDate1.DropDownCalendar.HolidayStyles.Add("PublicHolidays", holidayStyle);

            // 该组Holiday的样式由SubStyle定义
            holidayStyle.SubStyle = new SubStyle() { ForeColor = Color.Red, Bold = true };
            // 每年的10月1日定义为Holiday,也可以尝试其他实现了IHoliday接口的Holiday定义。
            holidayStyle.Holidays.Add(new GrapeCity.Win.Editors.Holiday(10, 1));


            // 启用该Holiday
            this.gcDate1.DropDownCalendar.ActiveHolidayStyles = new string[] { "PublicHolidays" }; // <--此处为HolidayStyle的名称。


假定你用了.NET版本的InputMan, 代码大致如以上所示。
上面的代码逻辑将设置每年的10月1日为Holiday,并且以红色粗体显示文本。

qiang 发表于 2016-3-9 12:44:46

可以只设定今年这一年的吗?其它年份不需要设定,只要求今年指定的一天变色就行,其它年份的这一天保持原来状态,不改变。

qiang 发表于 2016-3-9 12:44:49

可以只设定今年这一年的吗?其它年份不需要设定,只要求今年指定的一天变色就行,其它年份的这一天保持原来状态,不改变。

Leo 发表于 2016-3-9 14:49:20

qiang 发表于 2016-3-9 12:44
可以只设定今年这一年的吗?其它年份不需要设定,只要求今年指定的一天变色就行,其它年份的这一天保持原来 ...

// 每年的10月1日定义为Holiday,也可以尝试其他实现了IHoliday接口的Holiday定义。
            //holidayStyle.Holidays.Add(new GrapeCity.Win.Editors.Holiday(10, 1));
            // 仅一次
            holidayStyle.Holidays.Add(new GrapeCity.Win.Editors.ForceHoliday(DateTime.Parse("2016-10-1")));

qiang 发表于 2016-3-10 08:16:13

谢谢,我试试。。

Leo 发表于 2016-3-10 09:43:32

qiang 发表于 2016-3-10 08:16
谢谢,我试试。。

OK, 反正这个方案的实现原理就是通过Holiday加上Holiday的显示样式突出显示某些日期。
如果你有其他需求,可以尝试其他的Holiday类型或者自行实现Holiday接口定制所需要的特殊日期的规则。

qiang 发表于 2016-3-14 08:31:56

嗯,但是对于我那个只指定2016年的节假日,还是不管用,我试了几个方法也不起效果,现在还是统一每年都设置上。

Alice 发表于 2016-3-14 17:39:32

qiang 发表于 2016-3-14 08:31
嗯,但是对于我那个只指定2016年的节假日,还是不管用,我试了几个方法也不起效果,现在还是统一每年都设置 ...

如果你有其他需求,可以尝试其他的Holiday类型或者自行实现Holiday接口定制所需要的特殊日期的规则。

或是将你写不起作用的代码发出来,我们再看看。

qiang 发表于 2016-3-14 18:23:49

本帖最后由 qiang 于 2016-3-14 18:25 编辑

       **************************************************************************
      Dim maxDate As New Date(2016, 10, 10)

      Me._imd01_3.DropDownCalendar.HolidayStyles.Add("PublicHolidays", holidayStyle)
      holidayStyle.SubStyle = New SubStyle(Color.Black, Color.Red)
      
      holidayStyle.Holidays.Add(New GrapeCity.Win.Editors.Holiday(10, 10))
      holidayStyle.Holidays.Add(New GrapeCity.Win.Editors.ForceWorkday(maxDate))

      Me._imd01_3.DropDownCalendar.ActiveHolidayStyles = New String() {"PublicHolidays"}
*************************************************************************************
这个是VBnet代码,我想指定2016.10.10变成红色,背景色是黑色,【_imd01_3】是我窗体上Inpuman Date控件的名字, 这样运行的还是每年都有。
页: [1] 2
查看完整版本: InputMan data设定的问题