【Winform-自定义控件】可以使用2种半透明的颜色来填充Button
制作一个自定义按钮,使用2种半透明的颜色来填充Button
1.添加一个自定义控件类,并改变基类,继承自Button
public partial class CustomControl1 : Button
2.为控件创建一些自定义属性
private Color color1 = Color.White; //第一种颜色
public Color Color1
{
get { return color1; }
set { color1 = value; Invalidate(); }
}
private Color color2 = Color.Black; //第二种颜色
public Color Color2
{
get { return color2; }
set { color2 = value; Invalidate(); }
}
private int color1Transparent = ; //第一种颜色透明度
public int Color1Transparent
{
get { return color1Transparent; }
set { color1Transparent = value; Invalidate(); }
}
private int color2Transparent = ; //第二种颜色透明度
public int Color2Transparent
{
get { return color2Transparent; }
set { color2Transparent = value; Invalidate(); }
}
Invalidate()方法用于刷新设计图。 3.重写Paint事件
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);//调用基类 //用两种半透明的颜色填充Button
Color c1 = Color.FromArgb(color1Transparent, color1);
Color c2 = Color.FromArgb(color2Transparent, color2);
Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle, c1, c2, );
pe.Graphics.FillRectangle(b,ClientRectangle);
b.Dispose(); }
4.到这里就完成了。
完整代码:
using System;
using System.Windows.Forms;
using System.Drawing; namespace ctlCuteButton
{
public partial class CustomControl1 : Button
{ private Color color1 = Color.White; //第一种颜色
public Color Color1
{
get { return color1; }
set { color1 = value; Invalidate(); }
}
private Color color2 = Color.Black; //第二种颜色
public Color Color2
{
get { return color2; }
set { color2 = value; Invalidate(); }
}
private int color1Transparent = ; //第一种颜色透明度
public int Color1Transparent
{
get { return color1Transparent; }
set { color1Transparent = value; Invalidate(); }
}
private int color2Transparent = ; //第二种颜色透明度
public int Color2Transparent
{
get { return color2Transparent; }
set { color2Transparent = value; Invalidate(); }
} public CustomControl1()
{
} protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);//调用基类 //用两种半透明的颜色填充Button
Color c1 = Color.FromArgb(color1Transparent, color1);
Color c2 = Color.FromArgb(color2Transparent, color2);
Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle, c1, c2, );
pe.Graphics.FillRectangle(b,ClientRectangle);
b.Dispose(); }
}
}
【Winform-自定义控件】可以使用2种半透明的颜色来填充Button的更多相关文章
- winform 自定义控件:半透明Loading控件
winform 自定义控件:半透明Loading控件 by wgscd date:2015-05-05 效果: using System;using System.Drawing;using Sys ...
- (二十二)c#Winform自定义控件-半透明窗体
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- winform 自定义控件属性在属性面板中显示
Jan.David Nothing is impossible, the word itself says 'I'm possible'!" — Audrey Hepburn winform ...
- Winform自定义控件实例
本文转自http://www.cnblogs.com/hahacjh/archive/2010/04/29/1724125.html 写在前面: .Net已经成为许多软件公司的选择,而.Net自定义W ...
- c#Winform自定义控件-目录
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- (二)c#Winform自定义控件-按钮
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- (三)c#Winform自定义控件-有图标的按钮
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- (三十一)c#Winform自定义控件-文本框(四)
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- (三十二)c#Winform自定义控件-表格
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
随机推荐
- spark教程(八)-SparkSession
spark 有三大引擎,spark core.sparkSQL.sparkStreaming, spark core 的关键抽象是 SparkContext.RDD: SparkSQL 的关键抽象是 ...
- Jmeter之TCP取样器(模拟数据上报压测)
TCP压测 场景:模拟硬件设备上报数据(登录,心跳,GPS定位数据/光感数据/电量数据),对这个功能进行压测 啰嗦一句:TCP压测很简单,只要调通了一个TCP,后续的逻辑判断就用逻辑控制器和正则处理就 ...
- 代理、反射、注解、hook
代理 通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,扩展目标对象的功能. 代理对象拦截真实对象的方法调用,在真实对象调用前/后实现自己的逻辑调用 这里使用到编程中的一个思想:不 ...
- JSON和AJAX基础
前一段时间做老师留的企业图谱作业,和查询功能都需要用到AJAX .然后做爬虫的时候发现好多网站都用到的是页面的局部刷新,也就是发送的AJAX请求.就去学了一下.简单总结 什么是 JSON ? JSON ...
- 空格 ACSII码 160 32
ascii160和ascii32都表示空格,但是在IE里,160就不是显示空格,firefox里会显示空格,32不管是firefox里,还是IE里都显示空格.
- opencv 一些函数的耗时计算
Release 模式 -------------------------------------------------- smooth gaussian : 2 cvtColor CV_BGR2La ...
- 记项目管理大作业Web项目Mandrian的全流程[其一] 整体分析: 功能划分, 组织结构
Mandrian是个图书管理系统, 具体需求老师给出 这个项目的目的主要是管理过程和高层设计的学习和实践 11人小组, 路人局 成员调查 这里由于很多人我都不认识, 所以我提前发了一个能力调查表, 调 ...
- Struts简单的实例
一.创建Aciton类 package com.my.frame; public class HelloWordAction { private String name; public String ...
- Samba passwd smbpasswd and tdbsam
ome commands to convert samba backend password-databases. If you use "passdb backend = smbpassw ...
- 第一章·MySQL介绍及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 4.1 什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客 ...