2013-05-21 3 views
3

Я пытаюсь изменить текст текстового поля в Form1, нажав кнопку (button1 в форме2 является «STARTA») в Form2 и, вероятно, провел хорошие 2 часа (Я программист-новичок!). Я искал вокруг похожие вопросы и нашел кучу, но даже после многих попыток я не могу заставить его работать.Изменение текста в другой форме, нажав кнопку

Form1 [DESIGN]

enter image description here

Form2 [DESIGN]

enter image description here

Метод, который я пытаюсь сейчас что-то я нашел here

В Form1 I написал:

public string STARTTID 
{ 
    get 
    { 
     return this.textBox3.Text; 
    } 
    set 
    { 
     this.textBox3.Text = value; 
    } 
} 

Я знаю, что не имеет смысла получить и установить пустой текстовый блок, но я пробовал так много разных решений, которые, как я думаю, должны работать, но текст textBox просто не изменится, когда я нажму кнопку! В form2, когда button1 щелкают, я писал:

string TIDEN = DateTime.Now.ToString("HH:mm:ss tt"); 
Form1 first = new Form1(); 
first.STARTTID = TIDEN; 

То, что я пытаюсь сделать, это то, что я хочу, чтобы текст в textBox3 в Form1, чтобы изменить текущее время, когда button1 в form2 нажимается ,

Извините, если этот пост немного грязный, это мой первый и английский не мой самый сильный язык.

+0

У Вас есть ошибка или это просто не работает? – LukeHennerley

+0

Можете ли вы опубликовать более полный код, например, я не вижу, где вы вызываете first.show() и т. Д. – ose

ответ

1

проблема заключается в создании вы новый ярлык Form1 и обновления на том, не в вашей первоначальной форме

Form1 first = new Form1(); 
    first.STARTTID = TIDEN; 

Вам не нужно создавать новую форму, потому что вы уже создали. что вы можете сделать, это разобрать Form1 на Form2 при создании Form2 с помощью конструктора, который принимает параметр Form как параметр. или создать свойство в Form2 для Form1 и установить это при создании Form2.

Form1

Form2 f2 = new Form2(this); 
f2.Show(); 

Form2

public partial class Form2 : Form 
{ 
    private Form1 form1; 

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

    private void button1_Click(object sender, EventArgs e) 
    { 
     form1.STARTTID = "set by form2"; 
    } 
} 
+0

Я afarid Я не совсем понимаю, поскольку мое знание параметров, конструкторов и «синтаксического анализа» слишком ограниченный, не могли бы вы показать мне код, что мне нужно изменить? – Kaninstek

+0

@Kaninstek проверить мое обновление – Damith

+0

Спасибо! Это, наконец, заработало! – Kaninstek

Смежные вопросы