Winformのフォームを再描画する方法は?

WinFormでは、Invalidate()メソッドを使用して、フォームの再描画をトリガーできます。再描画が必要なイベントでInvalidate()メソッドを呼び出すと、システムは自動的にフォームのPaintイベントを呼び出して再描画を実行します。

簡単な例を以下に示します。

using System;
using System.Drawing;
using System.Windows.Forms;

public class MyForm : Form
{
    public MyForm()
    {
        // 注册Paint事件
        this.Paint += MyForm_Paint;
    }

    private void MyForm_Paint(object sender, PaintEventArgs e)
    {
        // 绘制重绘的逻辑
        Graphics g = e.Graphics;
        Pen pen = new Pen(Color.Red, 2);
        g.DrawLine(pen, 0, 0, this.Width, this.Height);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // 在按钮点击事件中调用Invalidate方法触发重绘
        this.Invalidate();
    }
}

上記の例では、Paintイベントを登録し、イベント処理メソッドに再描画のロジックを書きます。そして、ボタンがクリックされた際にInvalidate()メソッドを呼び出して再描画を実行します。

注意:Invalidate()メソッドはできるだけ早くPaintイベントを呼び出すためペイントが行われますが、実際の再描画タイミングまでは多少の遅延があり、すぐには実行されない場合があります。

bannerAds