我有以下习惯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的位置来设置您的开始位置,而只关心Width和包含行所需的控件的高度。
public Line()
{
Size = new Size(500, 500);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句