2015-12-28 66 views
0

嗨,我有一個小問題。我在C#中有一個GUI和一個名爲'methods'的類。方法爲我的GUI提供了各種各樣的...方法。然而由於某種原因,當我嘗試instanstiate方法類時,我無法在我的GUI中調用它。我的代碼如下所示:來自C#GUI另一個類的調用方法

public partial class Form1 : Form 
{ 

    public Form1() 
    {    
     InitializeComponent(); 
     Methoden m1 = new Methoden(); 
     Parameter p1 = new Parameter(); 
     m1.InitializeSensors(p1.ISensor); 
    } 




    private void button1_Click(object sender, EventArgs e) 
    { 
     m1. // this does not work 
    } 
} 

回答

2

你必須聲明在Form1的構造函數中Methoden m1 = new Methoden();和範圍對象m1已結束,因此您無法在構造函數外訪問該對象,因此您應該使用該對象

Methoden m1=null; 
public Form1() 
    {    
     InitializeComponent(); 
     m1 = new Methoden(); 
     Parameter p1 = new Parameter(); 
     m1.InitializeSensors(p1.ISensor); 
    } 
1

按照發布的代碼,你m1變量聲明和你Form1構造函數中初始化。這意味着該變量將僅存在於構造函數的範圍內,因此一旦代碼執行超出了構造函數的範圍,m1變量將不復存在。

爲了解決這個問題,你需要移動m1變量的decleration構造的範圍之內,像這樣:

public partial class Form1 : Form 
{ 
    Methoden m1; 
    public Form1() 
    {    
     InitializeComponent(); 
     m1 = new Methoden(); 
     Parameter p1 = new Parameter(); 
     m1.InitializeSensors(p1.ISensor); 
    } 




    private void button1_Click(object sender, EventArgs e) 
    { 
     m1. // this does not work 
    }