首先我们学习组件的开发,必须要了解winform的绘图是怎么绘制的,
以下知识建议先自行了解:
- PaintEventArgs
- Rectangle
- GraphicsPath
我们使用GraphicsPath添加一个三角形路径.
GraphicsPath graphicsPath = new GraphicsPath();
graphicsPath.AddLine(new Point(0, 0), new Point(0, 50));
graphicsPath.AddLine(new Point(0, 0), new Point(50, 0));
graphicsPath.AddLine(new Point(0, 50), new Point(50, 0));
graphicsPath.AddLine(new Point(50, 0), new Point(0, 50));
graphicsPath.CloseFigure();
然后把三角形绘制出来
e.Graphics.FillPath(new SolidBrush(Color.FromArgb(15, 93, 244)), graphicsPath);
然后我们添加分割线
e.Graphics.DrawLine(new Pen(Color.FromArgb(15, 93, 244)), new Point(0, 50), new Point(this.Width, 50));
接着绘制序号
e.Graphics.DrawString(_sortNo.ToString().PadLeft(3,'0'), font, new SolidBrush(Color.White), new Point(0, 0));
床位一共有两种模式:
- 未使用空床情况
- 已使用情况
当未使用时 绘制空床
e.Graphics.DrawString("空床", font, new SolidBrush(Color.FromArgb(14, 43, 94)), new Point(this.Width / 2 - 24, this.Height / 2 - 12));
当已使用时绘制用户信息及其临床诊断以及护理类别
font = new Font("微软雅黑", 12, FontStyle.Bold);
e.Graphics.DrawString(_UserType, font, new SolidBrush(Color.FromArgb(14, 43, 94)), new Point(this.Width / 2 - 12, 13));
//绘制用户姓名
font = new Font("微软雅黑", 24, FontStyle.Bold);
e.Graphics.DrawString(_UserName, font, new SolidBrush(Color.FromArgb(14, 43, 94)), new Point(55, 63));