[英]Custom Control OnPaint does not fire
我有以下的自定義Control
:
public class Line : Control
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
using (var p = new Pen(Color.Black, 3))
{
var point1 = new Point(234, 118);
var point2 = new Point(293, 228);
e.Graphics.DrawLine(p, point1, point2);
}
}
}
和一個Form
,我作為新控件添加一個Line
類的新實例:
Controls.Add(new Line());
問題是沒有調用方法OnPaint並且沒有繪制線。 為什么? 我該如何解決?
你沒有給它一個大小,嘗試創建一個構造函數並在那里設置默認大小,你似乎也使用父控件坐標,我會使用Usercontrol的位置來設置你的起始位置,只關心寬度和控制的高度需要包含你的線。
public Line()
{
Size = new Size(500, 500);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.