using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace ImageControls
{
public partial class ButtonEx : Control
{
public ButtonEx()
{
InitializeComponent();
} /// <summary>
/// 控件初始化
/// </summary>
private void InitializeComponent()
{
_BorderColor = Color.Black;
_FillColor = Color.Red;
} #region 字段 private Color _BorderColor;
private Color _FillColor; #endregion #region 控件属性 [DefaultValue("Black"), Description("边框颜色"), Category("Appearance")]
public Color BorderColor
{
get
{
// Insert code here.
return _BorderColor;
}
set
{
_BorderColor = value;
this.Invalidate();
}
} [DefaultValue("Red"), Description("填充颜色"), Category("Appearance")]
public Color FillColor
{
get
{
return _FillColor;
}
set
{
_FillColor = value;
this.Invalidate();
}
} #endregion
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
DrawCircle(pe, , _FillColor);
} /// <summary>
/// 如果x为0表示空心圆,如果为1表示实心圆
/// </summary>
/// <param name="pe"></param>
/// <param name="x"></param>
private void DrawCircle(PaintEventArgs pe,int x,Color brucolor)
{
//定义刷子,用于填充圆的颜色
Brush brsh = new SolidBrush(brucolor);
//定义笔
Brush penbrsh = new SolidBrush(_BorderColor);
Pen pen = new Pen(penbrsh,);
//定义矩形
Rectangle rec = new Rectangle();
rec.X = ;
rec.Y = ;
rec.Width = this.Width - ;
rec.Height = this.Height - ; if (x == )
pe.Graphics.DrawEllipse(pen, rec); //画空心,黑边框的圆
else
{ //画实心,黑边框的圆
pe.Graphics.FillEllipse(brsh, rec);
pe.Graphics.DrawEllipse(pen, rec); }
} private System.ComponentModel.Container components = null; protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
components.Dispose();
}
base.Dispose(disposing);
} }
}

做硬件测试软件,做了个点击变换颜色的控件

最新文章

  1. RMS去除在线认证
  2. Accordion - 手风琴
  3. 4. 星际争霸之php设计模式--工厂方法模式
  4. JavaScript 札记(数据类型和变量、)
  5. openerp学习笔记 domain 增加扩展支持,例如支持 &lt;field name=&quot;domain&quot;&gt;[(&#39;type&#39;,&#39;=&#39;,&#39;get_user_ht_type()&#39;)]&lt;/field&gt;
  6. 如何选择一个 Linux Tracer (2015)
  7. 制作Mac OS X Mavericks 安装U盘
  8. mysql 数据库连接池
  9. 记事本写hello world_Java
  10. stdin、stdout、stderr
  11. IOS网络请求中文转码
  12. niceScroll接口大全
  13. NodeJs操作MongoDB之多表查询($lookup)与常见问题
  14. web 本地存储 (localStorage、sessionStorage)
  15. [Objective-C]用Block实现链式编程
  16. idea 更换svn地址
  17. python xml文件解析
  18. python调用cmd显示中文乱码及调用cmd命令
  19. AutoFac记录
  20. 设置td中的table置顶

热门文章

  1. HDU 3584-Cube(三维BIT)
  2. 《Python 学习手册4th》 第十章 Python语句简介
  3. 《Python核心编程》 第三章 Python基础 - 练习
  4. Android自带CalendarView类实现日历视图
  5. 将矩阵转化为LibSvm需要的格式
  6. [GRYZ2015]INCR
  7. 采集网页数据---Using Java
  8. JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)
  9. Java每日一则-002
  10. Windows 窗体—— 键盘输入工作原理