2016-08-16 57 views
1

代碼從Form1中如何從Form2的文本框的值傳遞迴列表框值forn1 C#

private void EditBtn_Click(object sender, EventArgs e) 
{ 
    Form2 frm = new Form2(textBox1.Text); 
    frm.ShowDialog(); 
    frm.Show(); 
} 

代碼從表2

public partial class Form2 : Form 
    { 
    private object listBox1; 

    public Form2(string value) 
    { 
     InitializeComponent(); 
     textBox1.Text = value; 
    } 

    private void Form2_Load(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
      Form1.show(); 
     } 
    } 
} 

回答

0

我不知道,如果你想保持開放這兩種形式或不。如果你想保持它打開,並將項目添加到Form1的列表框,不是有一個答案

public partial class Form1 : Form 
{ 
    private void EditBtn_Click(object sender, EventArgs e) 
    { 
     // listBox1 is already set on the designer 
     Form2 frm = new Form2(textBox1.Text, listBox1); 
     frm.ShowDialog(); 
     frm.Show(); 
    } 
} 

public partial class Form2 : Form 
{ 
    private ListBox _listBox1; 

    public Form2(string value, ListBox listBox1) 
    { 
     InitializeComponent(); 
     textBox1.Text = value; 
     _listBox1 = listBox1; 
    } 

    private void Form2_Load(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     _listBox1.Items.Add("returned Value"); 
    } 
} 
+0

感謝您的回答。我現在就試試看,並讓你知道會發生什麼。 –

+0

好的。我對代碼做了一些調整。通過設計器將「listBox1」添加到表單中 – ntohl

0

暗示下面的解決方案。

添加ListBoxButtonForm1。 使列表框爲公共的和靜態的,如下面的代碼片段從窗體2

public static System.Windows.Forms.ListBox listBox1; 

訪問此使按鈕點擊事件如下

private void LoadForm2Btn_Click(object sender, EventArgs e) 
{ 
    Form2 form = new Form2(); 
    form.ShowDialog(); 
} 

現在添加另一種形式的窗體2。 添加一個文本框和按鈕。 使按鈕點擊事件如下

private void UpdateBtn_Click(object sender, EventArgs e) 
{ 
    if (UpdateBtn.Text != string.Empty) 
     Form1.listBox1.Items.Add(textBox1.Text); 
} 

現在,運行該程序。 通過單擊Form1中的「LoadForm2Btn」按鈕打開Form2。在Form1中輸入要添加到ListBox中的文本,然後單擊「UpdateBtn」按鈕。您的文字將被添加到列表框中

相關問題