1.设置图像和文字以抗锯齿的方式呈现

  1. g.SmoothingMode = SmoothingMode.AntiAlias;
  2. g.TextRenderingHint = TextRenderingHint.AntiAlias;

2.指定区域绘图(常见于OnPaint函数中:g.DrawImage(...))

  1. // 参数:
  2. // image:
  3. // 要绘制的 System.Drawing.Image。
  4. //
  5. // rect:
  6. // System.Drawing.Rectangle 结构,它指定所绘制图像的位置和大小。
  7. public void DrawImage(Image image, Rectangle rect);

  1. // 参数:
  2. // image:
  3. // 要绘制的 System.Drawing.Image。
  4. // destRect:
  5. // System.Drawing.Rectangle 结构,它指定所绘制图像的位置和大小。 将图像进行缩放以适合该矩形。
  6. // srcRect:
  7. // System.Drawing.Rectangle 结构,它指定 image 对象中要绘制的部分。
  8. // srcUnit:
  9. // System.Drawing.GraphicsUnit 枚举的成员,它指定 srcRect 参数所用的度量单位。
  10. public void DrawImage(Image image, Rectangle destRect, Rectangle srcRect, GraphicsUnit srcUnit);

3.指定区域绘制文本:

  1. TextFormatFlags flags = TextFormatFlags.VerticalCenter |
  2. TextFormatFlags.Left |
  3. TextFormatFlags.SingleLine;
  4. TextRenderer.DrawText(g, this.Text, this.Font, this.TextRect, foreColor, flags);

或者

  1. g.DrawString(....)

4.文本测量

  1. //测量文本占用空间大小
  2. g.MeasureString(this.Text, this.Font);

5.程序效果只在运行时显示

  1. if (!this.DesignMode)
  2. {
  3. //代码
  4. }

6.更新控件的显示

  1. //更新 ***Rect 区域的显示效果
  2. this.Invalidate(this.***Rect);

更新整个控件:

  1. //更新整个控件
  2. this.Invalidate();

7.修改控件的布局:

  1. this.pnlMain.SuspendLayout();
  2. /*
  3. 添加控件,
  4. 设置控件的Position、Size、Name等属性
  5. */
  6. this.pnlMain.ResumeLayout(false);
  7. this.pnlMain.PerformLayout();

8.属性

  • Category("****"):将该属性进行分类,组名为“****”;
  • Description("****"):对属性进行描述,描述信息为“****”;
  • Browsable(***):属性是否可见,是否可以在视图面板可见

Winform自定义控件基础(一)的更多相关文章

  1. Winform自定义控件基础(二)

    protected override void WndProc(ref Message m)

  2. Winform自定义控件实例

    本文转自http://www.cnblogs.com/hahacjh/archive/2010/04/29/1724125.html 写在前面: .Net已经成为许多软件公司的选择,而.Net自定义W ...

  3. (四十七)c#Winform自定义控件-树表格(treeGrid)

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  4. (八十六)c#Winform自定义控件-表格优化

    出处:http://www.hzhcontrols.com/原文:http://www.hzhcontrols.com/blog-149.html本文版权归www.hzhcontrols.com所有欢 ...

  5. C# winform 自定义控件

    近来因为项目的问题,开始研究winform自定义控件,这篇主要是将自定义控件的属性在属性编辑器中可编辑,如果你对自定义控件比较了解的,就不用继续往下看了 首先,我创建了一个类UserButton,继承 ...

  6. 《Programming WPF》翻译 第9章 1.自定义控件基础

    原文:<Programming WPF>翻译 第9章 1.自定义控件基础 在写一个自定义控件之前,你需要问的第一个问题是,我真的需要一个自定义控件吗?一个写自定义控件的主要原因是为了用户界 ...

  7. C#winform自定义控件模拟设计时界面鼠标移动和调节大小、选中效果

    要想玩转Winform自定义控件需要对GDI+非常熟悉,对常用的控件有一些了解,好选择合适的基类控件来简化. 要点说明及代码 1)定义接口: using System; using System.Wi ...

  8. 背水一战 Windows 10 (78) - 自定义控件: 基础知识, 依赖属性, 附加属性

    [源码下载] 背水一战 Windows 10 (78) - 自定义控件: 基础知识, 依赖属性, 附加属性 作者:webabcd 介绍背水一战 Windows 10 之 控件(自定义控件) 自定义控件 ...

  9. Winform 开发基础分层框架

    Winform 开发基础分层框架:

随机推荐

  1. Jmeter学习笔记TWO

    使用非GUI模式运行Jmeter脚本并自动生成测试报告 命令:jmeter -n -t tougu.jmx -l result.jtl -e -o /tmp/ResultReport 这个命令是用于执 ...

  2. OI省选算法汇总

    copy from hzwer @http://hzwer.com/1234.html 侵删 1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 ...

  3. css3学习--border

    http://blog.sina.com.cn/s/blog_61671b520101gelr.html border-radius border-radius: 50px 20px;上下都是50px ...

  4. 埃拉托色尼筛法(Sieve of Eratosthenes)求素数。

    埃拉托色尼筛法(Sieve of Eratosthenes)是一种用来求所有小于N的素数的方法.从建立一个整数2~N的表着手,寻找i? 的整数,编程实现此算法,并讨论运算时间. 由于是通过删除来实现, ...

  5. Apache的dbutils的架构图

  6. 传统瀑布式&敏捷开发

    ---传统瀑布式 瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求.分析.设计.编码.测试的步骤顺序进行. 步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等. 瀑布式 ...

  7. c# .net获取文件夹下的所有文件(多层递归),并获取区间数据(Jsion,xml等数据)写出到处理文件,学习分享~

    static void Main(string[] args)        { string path = string.Format(@"C:\Users\Administrator\D ...

  8. 12月4日PHPCMS模板

    cms的样式有很多种,我们学习的是phpcms,这些cms都是大同小异,学会了一种就可以使用其它的cms. PHPCMS是一款网站管理软件.该软件采用模块化开发,支持多种分类方式,使用它可方便实现个性 ...

  9. VBA学习

    1. Range / Cells / Columns / Rows 2. 绝对引用 $F$13 / 相对引用 F13 公式所在单元格的被复制到其他位置时,绝对引用不变 3. VLookup / NLo ...

  10. C语言基础(11)-随机数发生器

    一. rand() rand是一个C语言库函数,功能是生成一个随机数.rand需要一个不同的种子,才能生成不同的随机数. 二. srand(int seed) rand需要一个不同的种子,才能生成不同 ...