GUI Windows Form C#

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;
public class Form1 : System.Windows.Forms.Form {
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Label ValueLabel;
    private System.Windows.Forms.Button button2;
    private System.ComponentModel.Container components = null;
    private Thread fThread;
    private int fValue;
    public Form1() {
        fValue = 0;
        this.label1 = new System.Windows.Forms.Label();
        this.button1 = new System.Windows.Forms.Button();
        this.ValueLabel = new System.Windows.Forms.Label();
        this.button2 = new System.Windows.Forms.Button();
        this.SuspendLayout();
        this.label1.Location = new System.Drawing.Point(24, 32);
        this.label1.Size = new System.Drawing.Size(80, 16);
        this.label1.Text = "Value of Data:";
        this.button1.Location = new System.Drawing.Point(232, 32);
        this.button1.Text = "&Update";
        this.button1.Click += new
             System.EventHandler(this.button1_Click);
        this.ValueLabel.Location = new System.Drawing.Point(120, 32);
        this.button2.Location = new System.Drawing.Point(104, 88);
        this.button2.Name = "button2";
        this.button2.RightToLeft =
             System.Windows.Forms.RightToLeft.No;
        this.button2.Size = new System.Drawing.Size(96, 23);
        this.button2.Text = "Start Thread";
        this.button2.Click += new
             System.EventHandler(this.button2_Click);
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(336, 141);
        this.Controls.AddRange(new System.Windows.Forms.Control[] {
          this.button2,
          this.ValueLabel,
          this.button1,
          this.label1});
        this.ResumeLayout(false);
    }
    [STAThread]
    static void Main() {
        Application.Run(new Form1());
    }
    private void ThreadProc() {
        while (fValue < 1000) {
            Thread.Sleep(1000);
            fValue++;
        }
    }
    private void button2_Click(object sender, System.EventArgs e) {
        fThread = new Thread(new ThreadStart(ThreadProc));
        fThread.IsBackground = true;
        fThread.Start();
    }
    private void button1_Click(object sender, System.EventArgs e) {
        this.ValueLabel.Text = fValue.ToString();
    }
}