我一直在尝试通过单击Form2中的按钮(form2中的button1是“STARTA”)来更改Form1中文本框的文本,现在可能花了2个小时(我是编程新手!) 。 我一直在寻找类似的问题,并找到了一堆,但即使尝试了很多,我也无法让它工作。
Form1中[设计]
窗体2 [设计]
我正在尝试的方法是我找到的here
在Form1中我写了这个:
public string STARTTID
{
get
{
return this.textBox3.Text;
}
set
{
this.textBox3.Text = value;
}
}
我知道获取并设置一个空文本框并没有多大意义,但我已经尝试了许多不同的解决方案,我认为应该可以使用,但是当我点击按钮时,textBox的文本不会改变! 在form2中,当点击button1时,我写了这个:
string TIDEN = DateTime.Now.ToString("HH:mm:ss tt");
Form1 first = new Form1();
first.STARTTID = TIDEN;
我正在尝试做的是,我希望form1中textBox3中的文本更改为当按下form2中的button1时的当前时间。
很抱歉,如果这篇文章有点乱,那是我的第一篇,英语不是我最强的语言。
答案 0 :(得分:1)
问题是你在那个上创建新的Form1
并更新标签,而不是在你的初始形式
Form1 first = new Form1();
first.STARTTID = TIDEN;
您不需要创建新表单,因为您已经创建了它。当你使用接受Form作为参数的构造函数创建Form2时,你可以做的是解析Form1到Form2。或者在Form2中为Form1创建属性,并在创建Form2时设置该属性。
<强> Form1中强>
Form2 f2 = new Form2(this);
f2.Show();
<强>窗体2 强>
public partial class Form2 : Form
{
private Form1 form1;
public Form2(Form1 form1)
{
InitializeComponent();
this.form1 = form1;
}
private void button1_Click(object sender, EventArgs e)
{
form1.STARTTID = "set by form2";
}
}