簡體   English   中英

自定義控件OnPaint不會觸發

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM