gpt4 book ai didi

c# - 自定义控件 OnPaint 不触发

转载 作者:行者123 更新时间:2023-11-30 16:13:01 27 4
gpt4 key购买 nike

我有以下自定义 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);
}

关于c# - 自定义控件 OnPaint 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com