用户控件的设计要点 System.Windows.Forms.UserControl
用户控件的设计要点
最近的项目中有一个瀑布图(彩图)的功能,就是把空间和时间上的点量值以图的形式呈现出来,如下图:
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。
用户控件的设计要点 System.Windows.Forms.UserControl的更多相关文章
- UWP &WP8.1 依赖属性和用户控件 依赖属性简单使用 uwp添加UserControl
上面说 附加属性.这章节说依赖属性. 所谓依赖属性.白话讲就是添加一个公开的属性. 同样,依赖属性的用法和附加属性的用法差不多. 依赖属性是具有一个get,set的属性,以及反调函数. 首先是声明依赖 ...
- WPF CoboxItem控件使用SelectedItem去调System.Windows.Controls.ComboBoxItem: 前缀方法
textComBox.SelectedItem as ComboBoxItem).Content textConbox: 控件Combobox 的Name 在Combobox控件SelectionCh ...
- (九)ASP.NET自定义用户控件(2)
http://www.cnblogs.com/SkySoot/archive/2012/09/04/2670678.html 用户控件 在 .NET 里,可以通过两种方式把自己的控件插入到 Web 窗 ...
- System.Windows.Forms.Control : Component, IOleControl, IOleObject, IOleInPlaceObject, IOleInPlaceActiveObject....
#region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ...
- WPF自定义控件(五)の用户控件(完结)
用户控件,WPF中是继承自UserControl的控件,我们可以在里面融合我们的业务逻辑. 示例:(一个厌恶选择的用户控件) 后端: using iMicClassBase; using iMicCl ...
- 用户控件(UserControl)
简介 "用户控件"继承自UserControl,而UserControl继承自ContentControl,也就是内容控件UserControl和Window是一个层次上的,都有x ...
- .net chart(图表)控件的使用-System.Windows.Forms.DataVisualization.dll
这个案例指在介绍微软这套免费又功能强大的图表控件Microsoft Chart Controls for Microsoft .NET Framework 3.5,通过它,可让您的项目及报表,轻松套用 ...
- Windows phone 自定义用户控件(UserControl)——ColorPicker
编码前 学习Windows phone自定义用户控件,在<WPF编程宝典>学习的小例子.并根据windows phone稍微的不同,做了点修改.ColorPicker(颜色拾取器):拥有三 ...
- Windows.Forms Panel 动态加载用户控件 UserControl
创建好一个Windows Forms程序,在创建好的程序中Form1添加一个Panel控件 如图:
随机推荐
- MongoDB 基础命令使用学习记录
1. 启动 mongod 几个常用命令说明:--dbpath : 指定数据库相关文件的存储目录 --logpath: 指定日志文件的存储目录 --port: 指定数据库的端口,默认是 27017 -- ...
- jQuery的XX如何实现?——4.类型检查
往期回顾: jQuery的XX如何实现?——1.框架 jQuery的XX如何实现?——2.show与链式调用 jQuery的XX如何实现?——3.data与cache机制 -------------- ...
- (转)Java动态代理与CGLib代理
<br>public class UserDAOImpl{ <br><br> public void save() { <br> / ...
- 老生常谈JavaScript闭包
闭包就是指一个有权访问另外一个函数作用域中的变量的函数.--<JavaScript高级程序第三版> 本人对于闭包初次的认识就来自<高三>,首先仅仅通过“有权”’两个字我们便可以 ...
- atitit.编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质
atitit.编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质 #---语言的 工具和材料双重性 有的人说语言是个工具,有的人说语言是个材料..实际上语言同时属于两个属性. ...
- jQuery的简单入门练习
<html> <head> <meta charset="utf-8"> <title>jQuery的练习</title> ...
- Atom插件安装及常用插件推荐
Atom是个不错的文本编辑工具,也该可以改造成IDE用,主要靠插件实现各种扩展功能. 因为网络环境的原因,在线安装不容易成功,一般选择手动安装. 以下是我搜索网络资源后总结的手动安装方法. Atom插 ...
- 为什么移动Web应用很慢?
前些日子,看到Herb Sutter在自己的博客中推荐了一篇文章<Why mobile web apps are slow>,在推荐里他这样写道: “I don’t often link ...
- Android 发布可穿戴设备 SDK 的开发者预览版
今早上安卓官网查资料,发现网站上赫然显示着"Android Wear"几个大字.难道……?点进去看,果然,Android发布了可穿戴设备的SDK的开发者预览版. 其中这第五张图…… ...
- java中static{}语句块详解
static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法,下面我们详细的讨论一下该语句块的特性及应用. 一.在程序的一次执行过程中,stati ...