不要留恋过去
怎样才能约束用户,不让其选择过去的日期呢?有一个很傻的办法,就是每次启动应用程序的时候,自动把monthcalendar控件的mindate属性的值设为今天。这样虽然禁止了用户选择过去的日期,却带来另外一些问题:
当月之前的日期无法查看。
和选项窗体的min date设置相冲。
有鉴于此,我们采用另一种办法,就是在用户选中某个日期时,判断这个日期是否已经过去,若是,则禁用pin菜单项,若否,则启用pin菜单项。那么,如何获知用户选中了某个日期?最简单的办法就是使用monthcalendar控件的datechanged事件:
代码 1
运行应用程序,你会发现,当我选中今天或者将来的日期时,pin菜单项是启用的(图1),而当我选中过去的日期时,pin菜单项则是禁用的(图2):
图 1
图 2
这(几)天不要选
在继续之前,我们有必要搞清楚,"排除某(几)天"究竟是什么意思。在这里,"排除某(几)天"并不是指禁止用户选中那(几)天,而是指那(几)天不在计划中,但我们很清楚,计划赶不上变化,或许那(几)天真正到来的时候又可以选了。
和之前的"钉住日期"相比,"排除日期"除了无需在monthcalendar控件上有所反映之外,其它部分基本上是一样的,它支持排除某天、连续的几天和某个周末,用来保存被排除的日期的文件和应用程序放在同一个文件夹里,应用程序在启动的时候会检查这个文件是否存在,如果不存在就创建一个空白的文件。从上面这些描述来看,"排除日期"和"钉住日期"在很大程度上共享着相同的代码,于是,接下来就是考虑如何重用现有的代码并实现新的功能。
如果喜欢wm有约(三):下一次是什么时候?请收藏或告诉您的好朋友.
阅读(191) | 评论(0) | 转发(0) |