在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
事件來進行重繪,但具體的重繪時間可能會有一定的延遲,因此不能保證立即重繪。