2013-05-21 52 views
3

我一直在嘗試通過在Form2中單擊一個按鈕(form1中的button1是「STARTA」)來更改Form1中的文本框的文本,現在可能花了2個小時我是一個編程新手!)。 我一直在四處尋找類似的問題,並發現一堆,但即使嘗試了很多他們,我無法得到它的工作。通過單擊按鈕更改另一種形式的文本

Form1的[設計]

enter image description here

窗體2 [設計]

enter image description here

的方法,我想現在是我發現here

在Form1我寫這個:

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

我知道獲取並設置一個空的textBox並不太合理,但我嘗試了很多不同的解決方案,我認爲它應該可以工作,但是當我單擊按鈕時textBox的文本不會改變! 在窗口2,點擊按鈕1時,我寫了這個:

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

我想要做的,是我想在按下按鈕1窗體2時,在Form1中textBox3文字更改爲當前時間。

對不起,如果這篇文章有點混亂,這是我的第一個,英文不是我最強的語言。

+0

你有一個錯誤,或者是它只是不工作? – LukeHennerley

+0

你可以發佈一些更完整的代碼,例如我看不到你在哪裏打電話first.show()等 – ose

回答

1

問題是你不能在你的最初形式

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

,因爲你已經創造了它你並不需要創建新的窗體上一個創造新Form1和更新標籤。當您使用接受Form作爲參數的構造函數創建Form2時,您可以執行的操作是將Form1解析爲Form2。或者在Form1中爲Form1創建屬性,並在創建Form2時進行設置。

Form1中

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

窗體2

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

我很害怕我不太關注,因爲我對參數,構造函數和「解析」的知識是太有限了,你能否以代碼的形式向我展示我需要改變的內容? – Kaninstek

+0

@Kaninstek檢查我的更新 – Damith

+0

謝謝!這終於讓它工作了! – Kaninstek

相關問題