【问题标题】:Change textbox text parent from child form从子窗体更改文本框文本父级
【发布时间】:2013-02-20 12:56:29
【问题描述】:

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

我应该怎么做?

【问题讨论】:

  • 只是为了确定:您需要在 Form1 中访问来自 Form2 的变量或方法?
  • 成功了:Window form2 = new Form2(); form2.ShowDialog(); this.textBox1 = form2.TextBoxValue;其中 form2 定义了一个属性: public string TextBoxValue { get { return textBox2.Text; } }

标签: c# winforms


【解决方案1】:
  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; }
}

【讨论】:

  • @SinaRazavi 欢迎您。如果您觉得合适,请不要忘记接受答案。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    myTextbox.Text = form2.textBox1.Text;
    

    【讨论】:

      【解决方案4】:

      试试这个:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-07
        • 1970-01-01
        相关资源
        最近更新 更多