2016-02-06 2 views
-5

Я хочу обновить Label от form1 до form2.Какой параметр передать для формы1?

Я слышал, что если я хочу получить доступ к форме из другой формы, мне нужно поместить ее в конструктор. Так я и сделал. Чтобы передать информацию от Form1, я помещаю ее в скобки.

Я получаю сообщение об ошибке there is no corresponding argument. Я не знаю, какой параметр должен быть передан. Что я должен положить?

public void updateText(Form1 home) 
    { 
     home.txtOn.Text = "testing!"; 

     System.Diagnostics.Debug.WriteLine("button clicked!"); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     updateText(); 
    } 
+0

Вам нужно перегрузить конструктор во второй форме. –

+0

Как мне это сделать? –

ответ

3

Вам необходимо передать конструктору текущий экземпляр Form1.
Для этого необходимо добавить второй конструктор формы Form1 параметр Пример: с

private Form1 home { get; set; } 

public Form2(Form1 form) { 
    this.home = form; 
} 

И в форме, когда вы создаете Form2 вы должны пройти this

Form2 form = new Form2(this); 

И если вы хотите изменить значение внутри элемента управления Form1 вы должны использовать Controls collection