Winform自定义控件基础(一)

时间:2021-07-23 03:37:48

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(***):属性是否可见,是否可以在视图面板可见