c# - OnPaint 不更新

标签 c# onpaint

我有一个包含用户控件的Windows窗体。该用户控件具有以下代码:

protected override void OnPaint(PaintEventArgs pe)
{
  base.OnPaint(pe);
  pe.Graphics.DrawRectangle(
       new Pen(Color.Red, 5 + laenge), 
       new Rectangle(
             new Point(50 + leerzeichen, hoehe), 
             new Size(laenge + 20, 20)));
}

还有一些代码,现在可能不重要了。所以当我启动程序时它会绘制红色矩形。所有变量(laenge、leerzeichen、hoehe)在程序开始时都设置为 0。现在,当我按下按钮时,变量正在改变,但 OnPaint 不绘制新的矩形?可能是什么问题呢?我必须以某种方式调用 OnPaint 吗?

最佳答案

更改变量后,您需要调用Invalidate()(它内部调用OnPaint)

关于c# - OnPaint 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14274439/

相关文章:

c# - 我有几个关于 SslStream 类和证书的问题

C# SmtpClient发送失败: An invalid argument was supplied

c# - .Net DrawString 字体引用在调用后发生变化

c# - 控件未同时绘制

delphi - 设置 Paintbox 的字体大小会导致调用 OnPaint

c# - Azure AD 为 "external provider"?

c# - 合并数组中的多个 LINQ 表达式

c# - 将 null 与对象进行比较而不是将对象与 null 进行比较有什么问题

c++ - 背景颜色不显示文本的编辑框

c# - 在 Windows 窗体中创建带圆角的自定义 ComboBox