rotected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
SizeF textSize = e.Graphics.MeasureString(Text, Font);
SizeF imgSize = new SizeF(textSize.Height, textSize.Height);
float imgX = 5, imgY = (Height - imgSize.Height) / 2;
e.Graphics.DrawImage(Checked ? Properties.Resources.Check_check : Properties.Resources.Check_normal, imgX, imgY, imgSize.Width, imgSize.Height);
float textX = imgX + imgSize.Width + 5, textY = (Height - textSize.Height) / 2 + 2;
e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), textX, textY);
}