找回密码
 立即注册

QQ登录

只需一步,快速开始

qiang

注册会员

14

主题

48

帖子

199

积分

注册会员

积分
199

微信认证勋章

qiang
注册会员   /  发表于:2016-3-9 08:16  /   查看:11682  /  回复:13
在data日期控件,怎么设定指定的某一天显示红色,例:我想把10月1号设定成节假日,让这2016年的这一天变成红色,效果:我单击data控件显示的日期列表,切到10月1日,显示是红色。

15 个回复

倒序浏览
qiang
注册会员   /  发表于:2016-3-14 18:25:59
推荐
Alice 发表于 2016-3-14 17:39
如果你有其他需求,可以尝试其他的Holiday类型或者自行实现Holiday接口定制所需要的特殊日期的规则。

...

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

点评

Leo
你看,给个代码就好说了。瞬间秒杀你的问题。  发表于 2016-3-15 10:20
回复 使用道具 举报
Leo
超级版主   /  发表于:2016-3-9 11:15:25
板凳
本帖最后由 Leo 于 2016-3-9 11:16 编辑
  1.             var holidayStyle = new HolidayStyle("PublicHolidays");
  2.             this.gcDate1.DropDownCalendar.HolidayStyles.Add("PublicHolidays", holidayStyle);

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


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


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

评分

参与人数 1金币 +999 收起 理由
Alice + 999 很给力!

查看全部评分

回复 使用道具 举报
qiang
注册会员   /  发表于:2016-3-9 12:44:46
地板
可以只设定今年这一年的吗?其它年份不需要设定,只要求今年指定的一天变色就行,其它年份的这一天保持原来状态,不改变。
回复 使用道具 举报
qiang
注册会员   /  发表于:2016-3-9 12:44:49
4#
可以只设定今年这一年的吗?其它年份不需要设定,只要求今年指定的一天变色就行,其它年份的这一天保持原来状态,不改变。
回复 使用道具 举报
Leo
超级版主   /  发表于:2016-3-9 14:49:20
5#
qiang 发表于 2016-3-9 12:44
可以只设定今年这一年的吗?其它年份不需要设定,只要求今年指定的一天变色就行,其它年份的这一天保持原来 ...
  1. // 每年的10月1日定义为Holiday,也可以尝试其他实现了IHoliday接口的Holiday定义。
  2.             //holidayStyle.Holidays.Add(new GrapeCity.Win.Editors.Holiday(10, 1));
  3.             // 仅一次
  4.             holidayStyle.Holidays.Add(new GrapeCity.Win.Editors.ForceHoliday(DateTime.Parse("2016-10-1")));
复制代码
回复 使用道具 举报
qiang
注册会员   /  发表于:2016-3-10 08:16:13
6#
谢谢,我试试。。
回复 使用道具 举报
Leo
超级版主   /  发表于:2016-3-10 09:43:32
7#
qiang 发表于 2016-3-10 08:16
谢谢,我试试。。

OK, 反正这个方案的实现原理就是通过Holiday加上Holiday的显示样式突出显示某些日期。
如果你有其他需求,可以尝试其他的Holiday类型或者自行实现Holiday接口定制所需要的特殊日期的规则。
回复 使用道具 举报
qiang
注册会员   /  发表于:2016-3-14 08:31:56
8#
嗯,但是对于我那个只指定2016年的节假日,还是不管用,我试了几个方法也不起效果,现在还是统一每年都设置上。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-3-14 17:39:32
9#
qiang 发表于 2016-3-14 08:31
嗯,但是对于我那个只指定2016年的节假日,还是不管用,我试了几个方法也不起效果,现在还是统一每年都设置 ...

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

或是将你写不起作用的代码发出来,我们再看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
qiang
注册会员   /  发表于:2016-3-14 18:23:49
10#
本帖最后由 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控件的名字, 这样运行的还是每年都有。

点评

Leo
我崩溃了。。。。  发表于 2016-3-15 09:28
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部