C# winform: l'Accès aux biens publics, d'autres formes & différence entre statique et les propriétés publiques

J'essaie de comprendre quelle est la différence entre un statique et les propriétés publiques. Mais quand j'ai essayé d'accéder à mon public de la propriété 'Test' dans d'autres, il dit "null".

Heres Form1:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private string _test;

    public string Test
    {
        get { return _test; }
        set { _test = value; }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        _test = "This is a test";
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm2 = new Form2();
        frm2.Show();
    }
}

Voici Form2:

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        Form1 frm1 = new Form1();
        label1.Text = frm1.Test;
    }
}

Pour vérifier la valeur de "Test" dans Form1, j'ai mis un point d'arrêt à cette ligne:

label1.Text = frm1.Test;

Mais la valeur est 'null'.

S'il vous plaît aidez-moi comment puis-je accéder à des propriétés publiques à d'autres formes.

Et BTW, j'ai essayé de faire ce public, la propriété d'être un "public static'. Je peux accéder à l'aide de cette:

Form1.Test

Mais j'ai remarqué que je peux changer de "Test" de la valeur de Form2 que je ne veux pas arriver. C'est pourquoi je suis en train d'utiliser les biens publics, mais avec pas de chance. Quelqu'un peut-il me préciser ces choses. Merci à tous pour votre aide les gars!

EDIT: (For follow up question) 

Sir Jean Koerner la réponse est la meilleure réponse pour ma question. Mais j'ai une question de suivi, j'ai essayé de faire de ces "tester" les propriétés d'être "statique", et j'ai remarqué que même si je fais cette propriété statique ou à une propriété publique, il peut encore être modifier dans Form2. Pour me faire comprendre, voici un exemple:

public partial class Form2 : Form
{
    private Form1 f1;
    public Form2(Form1 ParentForm)
    {
        InitializeComponent();
        f1 = ParentForm;
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        label1.Text = f1.Test;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        f1.Test = "This test has been changed!";

        this.Close();
    }
}

Après Form2 fermé, j'ai essayé de rompre à nouveau dans Form1_Load de vérifier la valeur de "Test", et il a été changé! Comment puis-je faire une propriété publique dans Form1 readOnly dans Form2 et ne peut pas être editted? Veuillez préciser pour moi. Merci beaucoup les gars!

OriginalL'auteur jomsk1e | 2013-02-02