2014-12-07 200 views
0

我是c#的新手,我遇到了一些問題。 這是我的代碼:在窗體c之間共享數據#

//Form1 

public partial class Form1 : Form 
{ 
    public string name="Adam"; 

    private void button1_Click(object sender, EventArgs e) 
    { 
     name="John"; 
     Form2 f2=new Form2(); 
     f2.Show(); 
    } 
} 

//Form 2 

public partial class Form2 : Form 
{ 
    private void Form2_Load(object sender, EventArgs e) 
    { 
     Form1 f1=new Form1(); 
     textbox1.Text=f1.name; 
    } 
} 

當我點擊按鈕TextBox1的(從窗體2)顯示「亞當」,但我應該得到「約翰」

+0

你要傳遞的信息關 – 2014-12-07 12:08:38

回答

0

通過它,而你卻還在前形式:

private void button1_Click(object sender, EventArgs e) 
    { 
     name="John"; 
     Form2 f2=new Form2(); 
     f2.textBox1.Text = name; // textBox1 must not be private. 
     f2.Show(); 
    } 
+1

我不認爲使控制公衆是一個好主意。更好地爲Form2的構造函數創建一個重載或創建一個公共方法。 – 2014-12-07 12:31:04

0

這永遠不會發生。

在Form2中,您正在創建一個新的form1,它將具有DEFAULT值「Adam」。 如果你想讓它顯示在Form1中的價值,一個選項,以使在Form1的值傳遞到Form2

Name = "John"; 
Form2 f2 = new Form2(); 
f2.Name = Name; 
f2.Show(); 

,並在窗口2,添加「名稱」屬性,並使用它,而不是創造的一個新的form1。