C#绘图组成控件
本文关键字:控件 绘图 | 更新日期: 2023-09-27 18:27:18
我有一个自定义控件,它基本上绘制一个字符串和该字符串下面的一行:
public class TitleLabel : UserControl
{
//Properties here...
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawString(Caption, Font, brush, 0, 0);
e.Graphics.DrawLine(pen, 1, captionSize.Height + 2, this.Width - 1, captionSize.Height + 2);
}
}
这个控件放在表单上时效果很好。但是,我需要把它放在另一个用户控件中:
public class TitleBox : UserControl
{
public TitleLabel TitleLabel {get; set;}
public TitleBox()
{
this.TitleLabel = new TitleTable();
this.TitleLabel.Location = new Point(10, 10);
}
}
然而,执行以上操作并不能绘制第一个控件。我需要在第二个控件中挂接它的Paint事件吗?
在TitleBox内创建TitleLabel控件的实例是不够的。此外,您必须将新创建的控件添加到TitleBox的UserControl.Controls属性中(此属性存储用户控件中包含的控件集合),例如:
public class TitleBox : UserControl
{
public TitleLabel TitleLabel {get; set;}
public TitleBox()
{
this.TitleLabel = new TitleTable();
this.TitleLabel.Location = new Point(10, 10);
this.Controls.Add(this.TitleLabel);
}
}