Tôi có đoạn code sau, tôi đưa thêm label vào trong Form_Paint để theo dõi nhảy số, tôi thấy label nhảy số liên tục nhưng e.Graphics.DrawString(...) chỉ vẻ duy nhất 1 lần, có ai biết tại sao ?

Code:
public partial class Form1 : Form
    {        
        public Form1()
        {
            InitializeComponent();
            //progressBar1.Visible = false;
            progressBar1.Minimum = 0;
            progressBar1.Maximum = 100;

            this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);

        }
        int iNum = 0;        
        private void btnDrawText_Click(object sender, EventArgs e) //PaintEventArgs e
        {            
            progressBar1.Value = 0;
            progressBar1.Visible = true;
            this.timer1.Interval = 100;
            this.timer1.Enabled = true;            
                       
        }
        private void ShadowedTextPaint(PaintEventArgs e, int num)
        {
            using (Font font1 = new Font("Times New Roman", 250, FontStyle.Bold, GraphicsUnit.Pixel))
            {
                PointF pointF1 = new PointF(310, 270);
                e.Graphics.DrawString(num.ToString(), font1, Brushes.LightGreen, pointF1);                
                lblNum.Text = num.ToString();
            }            
            
        }
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            ShadowedTextPaint(e, iNum);
        }
        private void timer1_Tick(object sender, EventArgs e)
        {            
            if (progressBar1.Value < 100)
            {                
                Random rd = new Random();
                iNum = rd.Next(0, 999);                
                progressBar1.Value++;
            }
            else
            {                
                this.timer1.Enabled = false;
                progressBar1.Visible = false;                
            }
            
        }
  }