我有一个winform,在LOAD期间它调用了一个文本框背景色更改,从而触发了paint事件-我的代码在文本框颜色更改后再也没有到达行,并且我在逐步学习过程中注意到paint事件正在循环加载的时间。这里发生了什么事? VS是否意识到我陷入了无限的绘画循环,只是为我跳过了损坏的Load代码?
public Pretty_Load()
{
textBox1.BackColor = Color.FromArgb(230, 255, 255, 255);
/* Other lines that aren't reached */
}
在这里,paint事件在放弃之前循环了很多次。
private void Pretty_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Point p1 = this.ClientRectangle.Location;
Point p2 = new Point(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
using (LinearGradientBrush brsGradient = new LinearGradientBrush(p1, p2, Color.FromArgb(64, 64, 100), Color.FromArgb(32,0,0)))
{
g.FillRectangle(brsGradient, e.ClipRectangle);
}
}
我正在Pretty
表单构造函数中添加绘画事件处理程序:
public Pretty()
{
InitializeComponent();
this.Paint += Pretty_Paint;
/* Some other things and backcolor changes.
}
我怀疑可能是我设置了错误的处理程序,或者循环实际上是在textbox1.BackColor
更改期间发生的构造函数中“其他”颜色更改的一部分