一.首先,在创建的窗体拖入一个dateTimePicker控件,如图1所示:

图1

在Form3窗体加入如下代码控制月份的显示(本例为只显示本月和下个月份时间):

private void Form3_Load(object sender, EventArgs e)
  {
          this.dateTimePicker1.Value = DateTime.Today; 
            //取得本月第一天日期時間
          DateTime dtimeMin = DateTime.Parse(DateTime.Now.ToString("yyyy/MM/01 00:00:00"));
            
          //取下个月最后一天日期时间
          DateTime dtimeMax = DateTime.Parse(DateTime.Today.ToString("yyyy/MM/0123:59:59")).AddDays(-1).AddMonths(2);

//設定可選擇的日期上限
          this.dateTimePicker1.MinDate = dtimeMin;

//設定預設顯示的日期下限
          this.dateTimePicker1.MaxDate = dtimeMax;
  }

运行效果如图2,3所示:

图2

图3

二.在使用DateTimePicker和MonthCalendar这两个控件的时候,发现无论如何设置控件的各种颜色均不起作用,无论是在Property窗口里设置

还是代码中设置,如图4所示:

图4

图5

代码设置如:

//设置控件的TitleBackColor属性,使控件的标题背景为蓝色
  monthCalendar1.TitleBackColor = System.Drawing.Color.Blue;
  //设置控件的TrailingForeColor属性,使控件其他日期的颜色为红色
  monthCalendar1.TrailingForeColor = System.Drawing.Color.Red;
  //设置控件的TitleForeColor属性,使标题上的文字为黄色
  monthCalendar1.TitleForeColor = System.Drawing.Color.Yellow;

窗口设置如图6所示:

//设置控件的TitleBackColor属性,使控件的标题背景为蓝色
  monthCalendar1.TitleBackColor = System.Drawing.Color.Blue;
  //设置控件的TrailingForeColor属性,使控件其他日期的颜色为红色
  monthCalendar1.TrailingForeColor = System.Drawing.Color.Red;
  //设置控件的TitleForeColor属性,使标题上的文字为黄色
  monthCalendar1.TitleForeColor = System.Drawing.Color.Yellow;

这是因为:当启动了Visual Style之后,我们不能改变MonthCalendar的字体和背景颜色,Windows会根据系统设置选择合适的颜色进行绘制,他是通过Winforms发送MCM_SETCOLOR消息来改变MonthCalendar的颜色的。

解决方法:如果通过Program.CS中将Application.EnableVisualStyles()注释掉的话,就可以改变颜色了,但那会很丑陋的

注释下一行代码就可以了:

//Application.EnableVisualStyles();

效果如图7所示:

图7

C# WinForm开发系列之DataTimePicker控件显示月份的限制和关于DataTimePicker和monthCalendar的样式设置问题相关推荐

  1. WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

    WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色  在B/S开发中,对TreeView控件要改变当前选中节点的颜色比较方便,其有相应的SelectedNodeChanged事件 ...

  2. C# WinForm开发系列之c# 通过.net自带的chart控件绘制饼图,柱形图和折线图的基础使用和扩展

    一.需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 1.设置chart1的属性Legends中默认的Legend1的Enable为false: ...

  3. .net组件开发系列之武术系列 武术招数 控件生命周期与控件事件机制

    .net组件开发系列之武术系列 武术招数 控件生命周期与控件事件机制一.控件生命周期 先回述上篇,可能表述没有不清晰,也可能跨度大了点,好的,我们来一个循序渐进过程,大家都知道,武术都有招术的,先出什 ...

  4. C# WinForm开发系列 - GDI+【转】

    http://blog.csdn.net/blue_sky6/article/details/53811435?locationNum=6&fps=1 C# WinForm开发系列 - GDI ...

  5. [转载]C# WinForm开发系列 - 文章索引

    该系列主要整理收集在使用C#开发WinForm应用文章及相关代码, 平时看到大家主要使用C#来开发Asp.Net应用,这方面的文章也特别多,而关于WinForm的文章相对少很多,而自己对WinForm ...

  6. C# WinForm开发系列

    文章来源:博客园 该系列主要整理收集在使用C#开发WinForm应用文章及相关代码, 平时看到大家主要使用C#来开发Asp.Net应用,这方面的文章也特别多,而关于WinForm的文章相对少很多,而自 ...

  7. C# WinForm开发系列 - Open-Source Controls

    整理了一些在WinForm开发中可以使用的开源组件.(文章及相关代码搜集自网络,仅供学习参考,版权属于原作者! ). 1. 仿office 2007的Ribbon风格面板(该控件模仿office 20 ...

  8. SNF开发平台WinForm-Grid表格控件大全

    我们在开发系统时,会有很多种控件进行展示,甚至有一些为了方便的一些特殊需求. 那么下面就介绍一些我们在表格控件里常用的方便的控件:   1.Grid表格查询条 Grid表格下拉 3.Grid表格弹框选 ...

  9. C# WinForm开发系列 - OWC

    OWC(Microsoft Office Web Components)是 Microsoft Office 使用的数据绑定 ActiveX 控件,用于向 Web 页添加图表功能.OWC支持Micro ...

  10. WinForm的延时加载控件概述

    这篇文章主要介绍了WinForm的延时加载控件,很实用的技巧,在C#程序设计中有着比较广泛的应用,需要的朋友可以参考下 本文主要针对WinForm的延迟加载在常用控件的实现做简单的描述.在进行C#项目 ...

最新文章

  1. 统计学派的18种经典「数据分析方法」
  2. linux新用户登陆密码,如何强制Linux用户在第一次登录时更改初始密码?
  3. boost::fusion::as_list用法的测试程序
  4. u-boot 2011.09 使用自己的board 以及config.h
  5. 深入剖析阿里云推荐引擎——新架构,新体验
  6. Codeforces Round #446 (Div. 1) B. Gluttony 构造 + 补集思想
  7. mysql 5.6.23免安装_mysql5.6.23免安装配置
  8. CSS 加过渡效果transition
  9. python系统信息_Python获得操作系统信息
  10. 小沙的杀球(贪心+模拟)
  11. POJ 1611 The Suspects(简单并查集)
  12. PMP模拟题 | 每日一练,快速提分
  13. depends的用法
  14. itunes下载管理appstore老版本app
  15. codeforces19E Fairy
  16. 机器人自带触觉反馈,隔空微创手术的利器
  17. Android实现高德地图POI搜索
  18. Xilinx Zynq ZynqMP boot模式
  19. 用什么软件测试mate9的闪存_荣耀v9怎么看闪存类型 荣耀v9怎么测试闪存
  20. mc服务器对硬盘有要求吗,我的世界电脑配置要求是什么_我的世界电脑配置要求高吗_玩游戏网...

热门文章

  1. 信息收集(一)之whois查询
  2. 朴素贝叶斯-公园穿凉鞋问题的推导
  3. android 动态毛玻璃,Android毛玻璃背景效果简单实现代码
  4. 贪心算法之田忌赛马问题
  5. 不用等微信官方!微信圣诞帽,我用Python就能搞定!
  6. 【TF-Slim使用】
  7. 软件工程系啦啦队报名表(全部213人)
  8. WordPress清理和优化数据库,推荐几个优秀插件
  9. 流媒体中的常用网络传输协议
  10. [QCTF2018]Xman-RSA