linux万年历,GDI+带农历的万年历(周历)之制作

今天在网上无意中搜索到“Vista风格日历控件”()。下载之后发现,略有BUG,于是进行改进。无意中,制作出来带农历的万年历(周历版)。

运行如下图:

主要的改进在:

// frmDemo.cs

//#####################################################################################

//★★★★★★★           [华普软件]           ★★★★★★★

//★★ '华普软件-VB、C#专业论文与源码荟萃,敏捷开发,平台战略,让商业软件靓起来!  ★★

//#####################################################################################

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace CNPOPSOFT.Controls

{

public partial class frmDemo : Form

{

public frmDemo()

{

//InitializeComponent();

this.Load += new System.EventHandler(this.frmDemo_Load);

}

private void frmDemo_Load(object sender, EventArgs e)

{

InitContent();

}

/// /// 设计器支持所需的方法 - 不要

/// 使用代码编辑器修改此方法的内容。

///

private void InitContent()

{

this.SuspendLayout();

int calendarX = 0;

int calendarY = 0;

int ffsetX = -10;

int ffsetY = -10;

int columns = 7;

int rows = 1;

VistaCalendar[] vistaCalendarList = new VistaCalendar[columns * rows];

this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

this.BackColor = System.Drawing.Color.White;

this.ClientSize = new System.Drawing.Size(1024, 700);

DateTime dateTimeNow = DateTime.Now;

int year = dateTimeNow.Year;

int month = dateTimeNow.Month;

int day = dateTimeNow.Day;

int styleCount = Enum.GetNames(typeof(CNPOPSOFT.Controls.VistaCalendar.VistaCalendarStyle)).Length;

for (int i = 0; i < vistaCalendarList.Length; i++)

{

vistaCalendarList[i] = new VistaCalendar();

vistaCalendarList[i].BackColor = System.Drawing.Color.Transparent;

vistaCalendarList[i].CurrentDate = dateTimeNow.AddDays(i);

vistaCalendarList[i].IsUseToday = false;

calendarX = (i % columns) * (155 + offsetX);

calendarY = (i / columns) * (160 + offsetY);

vistaCalendarList[i].Location = new System.Drawing.Point(calendarX, calendarY);

vistaCalendarList[i].Name = "vistaCalendar" + (i+1).ToString();

vistaCalendarList[i].Size = new System.Drawing.Size(155, 160);

vistaCalendarList[i].Style. = (CNPOPSOFT.Controls.VistaCalendar.VistaCalendarStyle)((i + i/columns) % styleCount);

vistaCalendarList[i].TabIndex = i + 1;

this.Controls.Add(vistaCalendarList[i]);

}

//

// frmDemo

//

this.MaximizeBox = false;

this.MinimizeBox = false;

this.Name = "frmDemo";

this.Text = "Vista时钟控件";

this.Load += new System.EventHandler(this.frmDemo_Load);

this.ResumeLayout(false);

}

}

}

VistaCalendar.cs中新增了CurrentDate和IsUseToday两个公共属性:

public DateTime CurrentDate

{

get

{

return _currentDate;

}

set

{

_currentDate = value;

}

}

public bool IsUseToday

{

get { return _isUseToday; }

set { _isUseToday = value; }

}

并将UpdateCurrentDateInfo();由构造函数中放到了void VistaCalendar_Paint(object sender, PaintEventArgs e)中,这样更加合理。其他地方的微小改动包括字体大小等。

在此,谨向原作者致谢!感谢他的辛勤劳动!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值