绘制控件text的方法
/// <summary>
/// 绘制text
/// </summary>
class MyControlTmp:Control/*继承Control类*/
{
public string TxtInfor = string.Empty;
//添加属性写法使用
private string content=string.Empty;
public MyControlTmp(string txt)
{
this.BackColor = Color.White;
this.Size = new Size(200, 200);
TxtInfor = txt;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g = e.Graphics;
int w = this.Width;
int h = this.Height;
Rectangle rect = new Rectangle(0, 0, w, h);
//平滑绘制,反锯齿
g.SmoothingMode = SmoothingMode.HighQuality;
g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
using (Brush brush = new SolidBrush(Color.Red))
{
int x = 10;
int y = 10;
//字体
Font font = new Font("宋体", 16, GraphicsUnit.Point);
//格式与对齐
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
//在控件上指定位置绘制
g.DrawString(TxtInfor, font, brush, x, y, format);
//在空间上绘制一个矩形,然后绘制txt
//g.DrawString(Content, font, brush, rect, format);
font.Dispose();
}
}
//[Browsable(true)]
//[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
//public string Content
//{
// get { return this.content; }
// set { this.content= value; this.Invalidate()/*刷新界面*/; }
//}
}
调用
private void Form1_Load(object sender, EventArgs e)
{
MyControlTmp myControl = new MyControlTmp("cdc");
myControl.Location = new Point(10, 10);
panel1.Controls.Add(myControl);
}