⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 block.cs

📁 人事管理系统 时间比较长乐! 不过还算经典 有兴趣看一
💻 CS
字号:
using System;
using System.Drawing;

namespace Employee
{
	/// <summary>
	/// Block 的摘要说明。
	/// </summary>
	public class Block
	{
		public Block()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}
		public Block(int index, Point pt)
		{
			colorIndex = index;
			ptPosition = pt;
		}
		public Block(int index, int x, int y)
		{
			colorIndex = index;
			ptPosition.X = x;
			ptPosition.Y = y;
		}

		private int colorIndex;				//	颜色序号
		private Point ptPosition;			//	位置

		private static int size = 20;		//	方块大小
		private static int COLOR_CHANGE = 60;

		private static Color[] clrDefine
			= new Color[] {
							  Color.FromArgb(51, 204, 102),		// 绿	Default color, or extend block color
							  Color.FromArgb(200, 200, 102),		// 黄
							  Color.FromArgb(0, 143, 224),		// 蓝
							  Color.FromArgb(153, 153, 204),		// 青
							  Color.FromArgb(204, 204, 204),		// 灰
							  Color.FromArgb(232, 123,  20),		// 橙
							  Color.FromArgb(220,  39,  75)	 	// 红	sample block color
						  };	//	颜色

		public int ColorIndex
		{
			get
			{
				return colorIndex;
			}
			set
			{
				colorIndex = value;
			}
		}

		public Point Position
		{
			get
			{
				return ptPosition;
			}
			set
			{
				ptPosition = value;
			}
		}

		public void Draw(Graphics g, Point ptStart, bool clear)
		{
			if (clear)
			{
				g.FillRectangle(new SolidBrush(Color.White), ptStart.X + (ptPosition.X * size), 
					ptStart.Y + (ptPosition.Y * size), size, size);
			}
			else
			{
				g.FillRectangle(new SolidBrush(clrDefine[colorIndex]), ptStart.X + (ptPosition.X * size), 
					ptStart.Y + (ptPosition.Y * size), size, size);
				g.DrawLine(new Pen(GetLightColor(colorIndex), 1), ptStart.X + (ptPosition.X * size), ptStart.Y + (ptPosition.Y * size), ptStart.X + (ptPosition.X * size) + size - 1, ptStart.Y + (ptPosition.Y * size));
				g.DrawLine(new Pen(GetLightColor(colorIndex), 1), ptStart.X + (ptPosition.X * size), ptStart.Y + (ptPosition.Y * size), ptStart.X + (ptPosition.X * size), ptStart.Y + (ptPosition.Y * size) + size - 1);
				g.DrawLine(new Pen(GetDarkColor(colorIndex), 1), ptStart.X + (ptPosition.X * size) + size - 1, ptStart.Y + (ptPosition.Y * size) + size - 1, ptStart.X + (ptPosition.X * size) + size - 1, ptStart.Y + (ptPosition.Y * size));
				g.DrawLine(new Pen(GetDarkColor(colorIndex), 1), ptStart.X + (ptPosition.X * size) + size - 1, ptStart.Y + (ptPosition.Y * size) + size - 1, ptStart.X + (ptPosition.X * size), ptStart.Y + (ptPosition.Y * size) + size - 1);
				//g.DrawRectangle(new Pen(Color.Black, 1), ptStart.X + (ptPosition.X * size), 
				//	ptStart.Y + (ptPosition.Y * size), size-1, size-1);
			}
		}

		public void Draw(Graphics g)
		{
			Draw(g, new Point(0, 0), false);
		}

		public static int Size
		{
			get
			{
				return size;
			}
			set
			{
				size = value;
			}
		}

		public static Color GetColor(int index)
		{
			return clrDefine[index];
		}

		Color GetDarkColor(int index)
		{
			int r = clrDefine[index].R;
			int g = clrDefine[index].G;
			int b = clrDefine[index].B;

			r = r-COLOR_CHANGE<0 ? 0 : r-COLOR_CHANGE;
			g = g-COLOR_CHANGE<0 ? 0 : g-COLOR_CHANGE;
			b = b-COLOR_CHANGE<0 ? 0 : b-COLOR_CHANGE;

			Color c = Color.FromArgb(r, g, b);
			return c;
		}

		Color GetLightColor(int index)
		{
			int r = clrDefine[index].R;
			int g = clrDefine[index].G;
			int b = clrDefine[index].B;

			r = r+COLOR_CHANGE>255 ? 255 : r+COLOR_CHANGE;
			g = g+COLOR_CHANGE>255 ? 255 : g+COLOR_CHANGE;
			b = b+COLOR_CHANGE>255 ? 255 : b+COLOR_CHANGE;

			Color c = Color.FromArgb(r, g, b);
			return c;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -