1

我的程序中有两种形式。我在他们两个都有一个文本框和一个按钮。当我单击 form1 中的按钮时,使用 form2 显示showdialog(); 当我在 form2 中输入文本框并单击此表单中的按钮时,form2 关闭并且焦点位于 form1 上,并且我在 form2 中输入的文本被传输到 form1 上的文本框.

我该怎么做?

4

4 回答 4

3
  1. 在 form1 中保留对作为对话框显示的 form2 实例的引用
  2. 在 form2 中公开一个公共属性,给出 form2 中文本框的内容
  3. 当 form2 关闭时,下一行代码应该访问这个属性并使用它的值来填充 form1 中的文本框,

就像是:

Window form2 = new Form2();
form2.ShowDialog();
this.textBox1 = form2.TextBoxValue;

在哪里form2定义了一个属性:

public string TextBoxValue {
  get { return textBox2.Text; }
}
于 2013-02-20T13:01:33.803 回答
0

如果您不关心安全性,最简单的方法是将form1 中的TextBox 声明为public,然后从form2 更改其文本属性。

于 2013-02-20T13:03:35.267 回答
0

在 form2 中,您必须将文本框修饰符属性更改为 public。这将使设计器为文本框生成一个公共属性,以便您可以在任何地方访问它。

当 form2 关闭时,您只需执行以下操作:

myTextbox.Text = form2.textBox1.Text;
于 2013-02-20T13:07:41.227 回答
0

试试这个:

(按顺序)在 Form1 上:

 private void button1_Click(object sender, EventArgs e)
{
    Form2 frm2 = new Form2();
    frm2.Showdialog();
    this.Hide();
}

然后Form2:

 private void button1_Click(object sender, EventArgs e)
{
    Form2 frm2 = new Form2(textBox2.Text);
    frm2.Showdialog();
    this.Hide();
}

然后表格1:

public partial class Form1 : Form
{
public string textBoxValue;

public Form1()
{
    InitializeComponent();
}

public Form1(string textBoxValue)
{
    InitializeComponent();
    this.textBoxValue = textBoxValue;
}

private void Form1_Load(object sender, EventArgs e)
{
     textBox1.Text = textBoxValue;
}
于 2013-02-20T13:23:54.957 回答