C#将值传递给另一个表单

Jam*_*mie 0 c# forms winforms

我正在将一个bool从一个表单传递到另一个表单,我已经尝试声明'Private bool useDBServer;' 在我的班级顶部但这创建了一个新变量.

我究竟做错了什么?

谢谢

表格1如下:

Form2 frm = new Form2(dataGridView1, _useDBServer, _useOther);
Run Code Online (Sandbox Code Playgroud)

表格2如下:

    public Form2(DataGridView dgv, bool useDBServer, bool useOther)
    {
       if(useDBServer) //<---- works here
       {
         //stuff
       }
    }


    private void readRegistry()
    {
       if(useDBServer) //<---- but not here
       {
         //stuff
       }
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

如果要在不同的方法中使用该变量,则必须将其作为实例变量,并在构造函数中复制该值:

private readonly bool useDBServer;

public Form2(DataGridView dgv, bool useDBServer, bool useOther)
{
   this.useDBServer = useDBServer; // Copy parameter to instance variable
   if(useDBServer) 
   {
     //stuff
   }
}


private void readRegistry()
{
   if(useDBServer) // Use the instance variable
   {
     //stuff
   }
}
Run Code Online (Sandbox Code Playgroud)