0
我有一個自定義控制,基本上平的字符串和該字符串下方的線:當放置在窗體上C#繪製構成控制
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事件?
我已經刪除了我回答。發佈一些簡短但完整的樣本來重現問題。這將幫助我們看到什麼是錯的。 – 2014-10-20 09:04:16
您可能只需從其父繪畫事件調用嵌入式控件上的Invalidate()。 – TaW 2014-10-20 09:10:26