如何将EventArgs转换为PaintEventArgs,C#

时间:2015-01-08 06:49:53

标签: c# winforms onpaint

我想在调用MCU_timer_Tick()时调用 OnPaint()。 我该怎么办?

    private void MCU_timer_Tick(object sender, EventArgs e)
    {
        ...
    }
    protected override void OnPaint(PaintEventArgs e)
    {
      Graphics g = e.Graphics;

      int width = 30;
      int x, y;
      x = 150;
      y = 530;
      double color_max;
      color_max = 255;
      SolidBrush aBrush_1 = 
        new SolidBrush(Color.FromArgb(100, 255, 
        (int)(255 * color_map[0] / color_max), 0)); //color_map[0] is real value
      g.FillEllipse(aBrush_1, x-100, y, width * 2, width);

1 个答案:

答案 0 :(得分:4)

this.Invalidate()事件中致电Tick。这最终将使Paint事件发生。

private void MCU_timer_Tick(object sender, EventArgs e)
{
    this.Invalidate();
}

其中this是指Control。通常为Form