2017-04-14 4 views
-1

ich zu viele Zeit versucht haben, zugreifen und diese ändern Eigentum der Steuerung wie Timer dies mein Code Bitte helfen Sie mirWie erste Form Timer-Start aus der zweiten Form

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;  
    } 
} 

und ich habe auch versucht, über Laden Konstruktor

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;   
    } 
} 

, wenn ich über Laden verwenden Konstruktor dann aufgetretenen Fehler Ausnahme wie Objektverweis mir bitte nicht gefunden helfen .................... dank und Achtung Muhammad Azam Khan

+1

Wenn Daten zwischen Formularen geben Sie die gleiche Instanz des Formulars verwenden müssen, die (nicht erstellen eine neue Instanz) vorhanden ist. Siehe mein Projekt mit zwei Formularen: http://stackoverflow.com/questions/34975508/reach-control-from-another-page-asp-net – jdweng

+0

Wenn Sie auf ein anderes Formular zugreifen möchten, müssen Sie irgendwie eine Referenz übergeben Dieses Formular, kein neues Objekt erstellen (erster Ansatz), nehme an, dass dieser Verweis in einem Konstruktor selbst übergeben wird. Bei der Erstellung von Form2 (weiß nicht, wie Sie das tun) übergeben Sie einfach das aktuelle Formular (ich nehme an, dass Sie Form2 irgendwie von Form1 erstellen) –

Antwort

0

Wenn Sie geschrieben haben, wie Sie es mit dem Code aufrufen, könnten wir hilfreicher sein. Diese Ausnahme besagt, dass Sie beim Aufruf von From2 keinen Überladungskonstruktor verwenden.

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

    } 
    public Form2() 
    { 
     InitializeComponent(); 


    } 

Vielleicht Farget Sie this.If Sie nennen das

From2 form = Form2(); 

Mainform sollte null sein, so diese Ausnahme werfen. Überprüfen Sie Ihren Form2-Code.

1

in Form1:

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

in Form2:

private void button2_Click(object sender, EventArgs e) 
{ 
    Form1 frm = new Form1(); 
    frm.TimerEnable = true; 
} 
Verwandte Themen