嘿,人们我有一个问题我正在写一个自定义控件。我的控制继承自Windows.Forms.Control,我试图重写OnPaint方法。这个问题有点奇怪,因为它只有在我的表单中包含一个控件时才起作用,如果我添加另一个控件,那么第二个控件不会绘制,但是所有控件都会调用OnPaint方法。所以我想要的是,我所有的自定义控件都不仅绘制了一个,这里是我的代码:自定义控件onPaint事件不起作用
如果您运行代码,您将看到只有一个红色矩形出现在屏幕上。
public partial class Form1 : Form
{
myControl one = new myControl(0, 0);
myControl two = new myControl(100, 0);
public Form1()
{
InitializeComponent();
Controls.Add(one);
Controls.Add(two);
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
public class myControl:Control
{
public myControl(int x, int y)
{
Location = new Point(x, y);
Size = new Size(100, 20);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Pen myPen = new Pen(Color.Red);
e.Graphics.DrawRectangle(myPen, new Rectangle(Location, new Size(Size.Width - 1, Size.Height - 1)));
}
}
然后你用那个隐形编辑打我,加个解释=) – Tergiver
很好,谢谢你们 –