繁体   English   中英

从子窗体更改文本框文本父级

[英]Change textbox text parent from child form

我的程序中有两个表单。 我有两个文本框和一个按钮。 当我单击form1中的按钮时,使用showdialog();显示form2 showdialog(); 当我在form2中键入文本框并单击此窗体中的按钮时,form2关闭,焦点位于form1上,我在form2中键入的文本将传输到form1上的文本框中。

我该怎么做?

  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; }
}

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

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

当form2关闭时,你只需:

myTextbox.Text = form2.textBox1.Text;

尝试这个:

(按顺序)在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();
}

然后form1:

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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM