2017-04-14 19 views
-1

我已經嘗試了很多時間如定時器 訪問和更改控制的財產這是我的代碼,請幫我如何首先形成定時器開始從第二種形式

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

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

    private void button2_Click(object sender, EventArgs e) 
    { 
     Form1 frm = new Form1(); 
     frm.timer1.Enabled = true;  
    } 
} 

,我也試圖過載構造

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

public partial class Form2 : Form 
{ 
    Form1 mainform; 

    public Form2(Form1 mainform) 
    { 
     InitializeComponent(); 
     this.mainform=mainform; 
    } 

    public Form2() 
    { 
     InitializeComponent(); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     mainform.timer1.Enabled = true;   
    } 
} 
當我使用過載構造

再發生類似的對象引用異常錯誤未找到 請幫我.................... 感謝和關心穆罕默德阿扎姆汗

+1

路過時,你需要使用存在的形式相同的實例形式之間的數據(不創建一個新的實例)。看到我的兩個表單項目:http://stackoverflow.com/questions/34975508/reach-control-from-another-page-asp-net – jdweng

+0

如果你想訪問不同的表單,你必須以某種方式傳遞一個引用該形式,而不是創建一個新的對象(第一種方法),假設這個引用將在構造函數中傳遞。當創建Form2(不知道你是如何做到的)只需傳遞當前表單(我假設你從Form1以某種方式創建Form2) –

回答

0

如果你寫了如何用代碼調用它,我們可能會更有幫助。這個異常說,當你調用From2時,你不使用重載構造函數。

public Form2(Form1 mainform) 
    { 
     InitializeComponent(); 
     this.mainform=mainform; 

    } 
    public Form2() 
    { 
     InitializeComponent(); 


    } 

也許你farget this.If調用此

From2 form = Form2(); 

的MainForm應爲空,因此這個異常將拋出。檢查你的Form2調用代碼。

1
在Form1中

public bool TimerEnable{ 
     get{ return timer1.Enabled;} 
     set{ 
      timer1.Enabled = value; 
     } 
} 

在窗體2:

private void button2_Click(object sender, EventArgs e) 
{ 
    Form1 frm = new Form1(); 
    frm.TimerEnable = true; 
} 
相關問題