Это потому, что вы создаете локальную переменную с именем f2
в button1_Click
, но никогда не устанавливаете для члена класса f2
этот новый экземпляр:
private void button1_Click(object sender, EventArgs e)
{
// Creates a new variable called f2 that is local to the function
Form2 f2 = new Form2();
// To store the local instance to the class member, you need to un-comment
// this.f2 = f2;
// or change the previous line of code to:
// f2 = new Form2();
// Show the local form
f2.Show();
}
Поэтому в классе есть нулевое значениеуровень f2
.
Я также предполагаю, что в этом примере вы просто играете с отражением.Если это не совсем проверка отражения ... вам следует просто ссылаться на this.f2
напрямую, а не через отражение.