您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何从Form2更新Form1中的文本框?

如何从Form2更新Form1中的文本框?

要使BASIC工作,请执行以下操作。创建一个新项目。您当前的代码,Windows等都没有任何内容认项目将创建一个表单“ Form1”,暂时不做任何处理。

向项目中添加一个新窗体,它将认为“ Form2” …在其上放一个文本框,在其上放一个按钮。为了咧嘴笑,并澄清区分对象名称,请将Form2上控件的名称更改为“ txtOnForm2”和“ btnOnForm2”(对我的示例区分大小写,而可读性与“ txtonform2”均小写)。现在,在表单上,??右键单击并单击“查看代码”。它将带您到找到构造函数的其他“局部类”声明。添加以下内容,不要担心编译错误,因为另一半将在我们接下来将代码放入Form1中时…

// specifically typecasting the TYPE of form being passed in, 
// not just a generic form.  We need to see the exposed elements
Form1 CalledFrom;
// Ensure to do the : this() to make sure default behavior
// to initialize the controls on the form are created too.
public Form2(Form1 viaParameter) : this()
{
  CalledFrom = viaParameter;
}

private void btnOnForm2_Click(object sender, EventArgs e)
{
  CalledFrom.ValuesByProperty = this.txtOnForm2.Text;
  Message@R_813_2419@.Show( "Check form 1 text@R_813_2419@" );

  string GettingBack = CalledFrom.ValuesByProperty;
  Message@R_813_2419@.Show( GettingBack );

  CalledFrom.SetViaMethod( "forced value, not from text@R_813_2419@" );
  Message@R_813_2419@.Show( "Check form 1 text@R_813_2419@" );

  GettingBack = CalledFrom.GetViaMethod();
  Message@R_813_2419@.Show( GettingBack );
}

保存并关闭Form2设计器和代码窗口。

现在,打开Form1。在其上放置一个文本框和一个按钮。控件的名称分别为“ text@R_813_2419@1”和“ button1”。保持原样。双击按钮(在form1上)。它将为该按钮调出一段代码。粘贴以下内容

private void button1_Click(object sender, EventArgs e)
{
   Form2 oFrm = new Form2(this);
   oFrm.Show();
}

public string ValuesByProperty
{
  get { return this.text@R_813_2419@1.Text; }
  set { this.text@R_813_2419@1.Text = value; }
}

public void SetViaMethod(string newValue)
{ this.text@R_813_2419@1.Text = newValue; }

public string GetViaMethod()
{ return this.text@R_813_2419@1.Text; }

现在,保存表单并运行它们。单击第一个窗体上的按钮,使用本身已创建的实例(而不是其自身的新SECOND实例)调用第二个窗体。将显示第二个表单。移动窗口,以便您可以同时看到两个窗口。

在文本框的第二个窗口中输入一些文本,然后单击按钮…遵循即将发生/正在发生的事情。

其他 2022/1/1 18:17:02 有494人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶