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

时间:2009-09-25 11:07:03

标签: c# winforms forms

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

我做错了什么?

由于

下面的表格1:

Form2 frm = new Form2(dataGridView1, _useDBServer, _useOther);

下面的表格2:

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


    private void readRegistry()
    {
       if(useDBServer) //<---- but not here
       {
         //stuff
       }
    }

4 个答案:

答案 0 :(得分: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
   }
}

答案 1 :(得分:0)

public Form2(DataGridView dgv, bool _useDBServer, bool useOther)
    {
       useDBServer = _useDBServer;

       if(useDBServer) //<---- works here
       {
         //stuff
       }
    }

答案 2 :(得分:0)

做这样的事情:

bool localUseDBServer;

public Form2(DataGridView dgv, bool useDBServer, bool useOther)
{
   localUseDBServer = useDBServer;

   if(localUseDBServer)
   {
     //stuff
   }
}

private void readRegistry()
{
   if(localUseDBServer)
   {
     //stuff
   }
}

答案 3 :(得分:0)

您正在向构造函数传递参数。如何在课堂上的方法中使用它?您需要在实例成员变量中“保存”参数。或者您需要将构造函数中的参数转发给方法。