Winform自定义控件基础(一)
1.设置图像和文字以抗锯齿的方式呈现
g.SmoothingMode = SmoothingMode.AntiAlias;
g.TextRenderingHint = TextRenderingHint.AntiAlias;
2.指定区域绘图(常见于OnPaint函数中:g.DrawImage(...))
// 参数:
// image:
// 要绘制的 System.Drawing.Image。
//
// rect:
// System.Drawing.Rectangle 结构,它指定所绘制图像的位置和大小。
public void DrawImage(Image image, Rectangle rect);
或
// 参数:
// image:
// 要绘制的 System.Drawing.Image。
// destRect:
// System.Drawing.Rectangle 结构,它指定所绘制图像的位置和大小。 将图像进行缩放以适合该矩形。
// srcRect:
// System.Drawing.Rectangle 结构,它指定 image 对象中要绘制的部分。
// srcUnit:
// System.Drawing.GraphicsUnit 枚举的成员,它指定 srcRect 参数所用的度量单位。
public void DrawImage(Image image, Rectangle destRect, Rectangle srcRect, GraphicsUnit srcUnit);
3.指定区域绘制文本:
TextFormatFlags flags = TextFormatFlags.VerticalCenter |
TextFormatFlags.Left |
TextFormatFlags.SingleLine;
TextRenderer.DrawText(g, this.Text, this.Font, this.TextRect, foreColor, flags);
或者
g.DrawString(....)
4.文本测量
//测量文本占用空间大小
g.MeasureString(this.Text, this.Font);
5.程序效果只在运行时显示
if (!this.DesignMode)
{
//代码
}
6.更新控件的显示
//更新 ***Rect 区域的显示效果
this.Invalidate(this.***Rect);
更新整个控件:
//更新整个控件
this.Invalidate();
7.修改控件的布局:
this.pnlMain.SuspendLayout();
/*
添加控件,
设置控件的Position、Size、Name等属性
*/
this.pnlMain.ResumeLayout(false);
this.pnlMain.PerformLayout();
8.属性
- Category("****"):将该属性进行分类,组名为“****”;
- Description("****"):对属性进行描述,描述信息为“****”;
- Browsable(***):属性是否可见,是否可以在视图面板可见
Winform自定义控件基础(一)的更多相关文章
- Winform自定义控件基础(二)
protected override void WndProc(ref Message m)
- Winform自定义控件实例
本文转自http://www.cnblogs.com/hahacjh/archive/2010/04/29/1724125.html 写在前面: .Net已经成为许多软件公司的选择,而.Net自定义W ...
- (四十七)c#Winform自定义控件-树表格(treeGrid)
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- (八十六)c#Winform自定义控件-表格优化
出处:http://www.hzhcontrols.com/原文:http://www.hzhcontrols.com/blog-149.html本文版权归www.hzhcontrols.com所有欢 ...
- C# winform 自定义控件
近来因为项目的问题,开始研究winform自定义控件,这篇主要是将自定义控件的属性在属性编辑器中可编辑,如果你对自定义控件比较了解的,就不用继续往下看了 首先,我创建了一个类UserButton,继承 ...
- 《Programming WPF》翻译 第9章 1.自定义控件基础
原文:<Programming WPF>翻译 第9章 1.自定义控件基础 在写一个自定义控件之前,你需要问的第一个问题是,我真的需要一个自定义控件吗?一个写自定义控件的主要原因是为了用户界 ...
- C#winform自定义控件模拟设计时界面鼠标移动和调节大小、选中效果
要想玩转Winform自定义控件需要对GDI+非常熟悉,对常用的控件有一些了解,好选择合适的基类控件来简化. 要点说明及代码 1)定义接口: using System; using System.Wi ...
- 背水一战 Windows 10 (78) - 自定义控件: 基础知识, 依赖属性, 附加属性
[源码下载] 背水一战 Windows 10 (78) - 自定义控件: 基础知识, 依赖属性, 附加属性 作者:webabcd 介绍背水一战 Windows 10 之 控件(自定义控件) 自定义控件 ...
- Winform 开发基础分层框架
Winform 开发基础分层框架:
随机推荐
- weui 图片弹框
添加图片与弹出效果对比: HTML: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- ssh 公钥登陆的问题
我在A,B两台机器上面使用无密码登陆的方式 在A主机上面生成公钥 复制到了B主机的authorized_keys文件里面 发现还是要输入密码 问题1 权限问题 .ssh 目录必须是 700 auth ...
- 【原】mysql5.6 split函数_字符串的分割
DROP FUNCTION IF EXISTS `getSplitName`$$ )) RETURNS text BEGIN /* 对逗号进行分离的字符串,分割出'登陆名_用户名/部门名'中的_后部门 ...
- 【BZOJ-4245】OR-XOR 按位贪心
4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 486 Solved: 266[Submit][Sta ...
- ThinkPhp 3.2 自动验证
自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则 ...
- swift实现水仙花数
//: Playground - noun: a place where people can play import Cocoa for var a in 1...4{ var b = 4 - a ...
- 【原创】PageAdminCMS 前台SQL注入漏洞(3)
之前根据公司的要求找了几个web程序的漏洞提交CNVVD,发现漏洞提交上去两个月了,CNVVD却没有任何回应,我提交的这几个漏洞却悄悄的修补掉了. 文章作者:rebeyond 受影响版本:V3.0 漏 ...
- ORA-01438: 值大于为此列指定的允许精度
Number的数据声明如下:表示 作用 说明Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点 ...
- JEECG 社区开源项目下载(总览)
反馈问题板块:http://www.jeecg.org/forum.php?mod=forumdisplay&fid=153 资源1: JEECG 微云快速开发平台( JEECG 3.6.5 ...
- jQuery中Animate进阶用法(一)
jQuery中animate的用法你了解多少呢?如果仅仅是简单的移动位置,显示隐藏,哦!天哪你在浪费资源!因为animate太强大了,你可以有很多意想不到的用法!让我们一起研究一下吧~~ 首先要了解j ...