2016-08-16 62 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”按钮。您的文字将被添加到列表框中

相关问题