資源簡介
一個簡單的C#日歷控件(源碼)
作一個小項目,其中Appointment功能需要日歷控件,但C#本身的日歷控件不能滿足需要,只好自己編寫了一個。比較簡單,但滿足了功能要求。
1.只實現了一個事件:DateChanged取得所選取的日期
private void shyCalendar1_DateChanged(object sender, shyCtrl.shyCalendar.DateChangedEventArgs e)
{
label1.Text = e.GetDate.ToString();
}
2.可以取得當前所選擇的日期:
label2.Text = shyCalendar1.CurrDate.ToString();
3.可以設置指定條件的日期的前景色和背景色
shyCalendar1.TermItes[i].ForeColor
.BackColor
.Desc(暫無用)
.Term(格式下面說明)
4.Term的格式
2011.10.20,2011.10.22, .... 指定日期
2011.10.26-2011.10.29, .... 指定日期范圍,含-前后的日期
-2011.03.15, 指定日期范圍,小于等于-后面的日期
2011.04.20-, 指定日期范圍,大于等于-前面的日期
w0,w1,w2,w3,w4,w5,w6 w0表示周日,w1表示周一....
通過這個控件,我可以實現專家預約顯示。在日歷控件中,專家非工作日是什么顏色,有過預約的日期是什么顏色,預約滿了的日期是什么顏色。
控件不能改變大小、字體。不過要做到這點也很容易。懶得做了,滿足需要就行了。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Drawing;
using?System.Data;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
using?System.Collections;
namespace?shyCtrl
{
????public?partial?class?shyCalendar?:?UserControl
????{
????????private?string?CurrYearMonth?=?““;
????????private?Listyle>?CellstyleList?=?new?Listyle>();
?
????????private?List?_TermItems?=?new?List();
????????[TypeConverter(typeof(System.ComponentModel.CollectionConverter))]
????????[DesignerSerializationVisibility(?DesignerSerializationVisibility.Content)]
????????public?List?TermItems
????????{
????????????get?{?return?_TermItems;?}
????????}
????????public?class?TermList
????????{
????????????public?string?Desc?{?get;?set;?}
????????????public?string?Term?{?get;?set;?}
????????????public?Color?BackColor?{?get;?set;?}
????????????public?Color?ForeColor?{?get;?set;?}
????????}
????????#region?DateChanged?event
????????public?class?DateChangedEventArgs?:?EventArgs
????????{
????????????private?DateTime?dt;
????????????public?DateChangedEventArgs(DateTime?CurrDay)
????????????{
????????????????dt?=?CurrDay;
????????????}
????????????public?DateTime?GetDate
????????????{
????????????????get?{?return?dt;?}
????????????}
????????}
????????public?delegate?void?DateChangeEventHandler(object?sender?DateChangedEventArgs?e);
????????public?event?DateChangeEventHandler?DateChanged;
????????protected?virtual?void?onDateChanged(DateChangedEventArgs?e)
????????{
????????????if?(DateChanged?!=?null)
????????????{
????????????????DateChanged(this?e);
????????????}
????????}
????????public?DateTime?CurrDate
????????{
????????????get?{?return?this.dtYearMonth.Value;?}
????????}
????????#endregion
????????public?shyCalendar()
????????{
????????????InitializeComponent();
????????}
????????private?void?shyCalendar_Load(object?sender?EventArgs?e)
????????{
????????????//set?Cellstyle?according?TermItem?property
????????????CellstyleList.Clear();
????????????for?(int?i?=?0;?i?????????????{
????????????????CellstyleList.Add(new?DataGridViewCellstyle());
????????????????CellstyleList[i].ForeColor?=?this.TermItems[i].ForeColor;
????????????????CellstyleList[i].BackColor?=?this.TermItems[i].BackColor;
????????????}
????????????lblToday.Text?=?“Today:?“?+?DateTime.Now.ToString(“dd/MM/yyyy“);
????????????dtYearMonth.Value?=?DateTime.Now;
????????}
????????///?
????????///?
????????///?
????????///??sDate?format?is?yyyy.MM.dd
????????///?
????????///?format?of?sTerm:
????????///?example1:????2011.10.202011.10.22?....
????????///??????????????2011.10.26-2011.10.29?....
????????///??????????????-2011.03.15
????????///??????????????2011.04.20-
????????//
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????16384??2011-10-23?14:36??shyCtrl\shyCtrl\bin\Debug\shyCtrl.dll
?????文件??????24064??2011-10-23?14:36??shyCtrl\shyCtrl\bin\Debug\shyCtrl.pdb
?????文件???????8405??2011-10-21?23:37??shyCtrl\shyCtrl\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6097??2011-10-23?14:36??shyCtrl\shyCtrl\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件????????124??2011-10-21?23:41??shyCtrl\shyCtrl\obj\Debug\GenerateResource.read.1.tlog
?????文件????????290??2011-10-21?23:41??shyCtrl\shyCtrl\obj\Debug\GenerateResource.write.1.tlog
?????文件???????7319??2011-10-22?21:42??shyCtrl\shyCtrl\obj\Debug\ResolveAssemblyReference.cache
?????文件????????592??2011-10-21?23:33??shyCtrl\shyCtrl\obj\Debug\shyCtrl.csproj.FileListAbsolute.txt
?????文件??????16384??2011-10-23?14:36??shyCtrl\shyCtrl\obj\Debug\shyCtrl.dll
?????文件??????24064??2011-10-23?14:36??shyCtrl\shyCtrl\obj\Debug\shyCtrl.pdb
?????文件????????180??2011-10-21?23:41??shyCtrl\shyCtrl\obj\Debug\shyCtrl.shyCalendar.resources
?????文件???????1444??2011-10-21?23:26??shyCtrl\shyCtrl\Properties\AssemblyInfo.cs
?????文件??????10738??2011-10-23?14:36??shyCtrl\shyCtrl\shyCalendar.cs
?????文件??????13358??2011-10-21?23:40??shyCtrl\shyCtrl\shyCalendar.Designer.cs
?????文件???????7084??2011-10-21?23:40??shyCtrl\shyCtrl\shyCalendar.resx
?????文件???????2858??2011-10-21?23:33??shyCtrl\shyCtrl\shyCtrl.csproj
?????文件???????1163??2011-10-23?14:05??shyCtrl\shyCtrl.sln
????..A..H.?????18432??2011-10-23?14:05??shyCtrl\shyCtrl.suo
?????目錄??????????0??2011-10-21?23:26??shyCtrl\shyCtrl\obj\Debug\TempPE
?????目錄??????????0??2011-10-21?23:33??shyCtrl\shyCtrl\bin\Debug
?????目錄??????????0??2011-10-21?23:27??shyCtrl\shyCtrl\bin\Release
?????目錄??????????0??2011-10-23?14:36??shyCtrl\shyCtrl\obj\Debug
?????目錄??????????0??2011-10-21?23:27??shyCtrl\shyCtrl\bin
?????目錄??????????0??2011-10-21?23:26??shyCtrl\shyCtrl\obj
?????目錄??????????0??2011-10-21?23:26??shyCtrl\shyCtrl\Properties
?????目錄??????????0??2011-10-21?23:28??shyCtrl\shyCtrl
?????目錄??????????0??2011-10-23?14:05??shyCtrl
-----------?---------??----------?-----??----
???????????????158980????????????????????27
............此處省略0個文件信息
- 上一篇:asp.net線程教程
- 下一篇:C#RDLC動態加載圖片
評論
共有 條評論