用户控件的设计要点 System.Windows.Forms.UserC…
2018-06-17 20:11:40来源:未知 阅读 ()
用户控件的设计要点
最近的项目中有一个瀑布图(彩图)的功能,就是把空间和时间上的点量值以图的形式呈现出来,如下图:
X坐标为空间,水平方向的一个像素代表一个空间单位(例如50米)
Y坐标为时间,垂直方向的一个像素代表一个时间单位(例如1秒)
由于没有现成的彩图控件可以使用,于是就自己尝试的写了一个用户控件,这篇博客就是讲述了如何编写一个类似的用户控件。
该用户控件使用了自绘制的功能,其实要实现自绘制还是比较容易的,按以下的几个步骤即可:
1,创建一个继承自 System.Windows.Forms.UserControl 的类。右击解决方案项目,选择“添加” “用户控件”,输入控件名称。
public partial class ColorControl : UserControl
2,设置控件 DoubleBuffered 为true,对控件进行双缓存处理,减少绘制控件时的闪烁。
3,在构造函数里添加如下代码:
设置 Control 类的 ResizeRedraw 为true,取消了在调整控件大小时的拖尾现象(之前绘制的内容没有擦除)
// // 摘要: // 获取或设置一个值,该值指示控件在调整大小时是否重绘自己。 // // 返回结果: // 如果控件在调整大小时重绘自己,则为 true;否则为 false。 protected bool ResizeRedraw { get; set; }
public ColorControl() { InitializeComponent(); ResizeRedraw = true; }
4,重写控件的 OnPaint 方法
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); // 开始绘制自己的代码即可 Draw(e.Graphics, this.ClientRectangle); }
具体的 Draw 方法如何写就看项目对控件的需求了。下面是个简单的Draw方法截图:
当然在制作图表控件还是有很多东西需要考虑的,最基本的绘制坐标系,绘制标题,绘制主内容区域,还要提供一些事件和方法供客户类使用。这后面的东西可以参考开源的 ZedGraph。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Delphi - 手把手教你基于D7+Access常用管理系统架构的设计与 2019-12-11
- Delphi - 采用第三方控件TMS、SPComm开发串口调试助手 2019-09-04
- Delphi 开发微信公众平台 (二) 用户管理 2019-05-08
- webform 简单的服务器控件。 2018-06-27
- webform 简单的服务器控件。 2018-06-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash