点击按钮更改另一表单中的文本

3
我一直在尝试通过在Form2中点击按钮(Form2中的button1是“STARTA”)来更改Form1中文本框的文本,可能已经花了好几个小时了(我是一个编程新手!)。我已经搜索了很多类似的问题,并找到了一堆解决方法,但即使尝试了很多方法,我仍然无法让它正常工作。

Form1[设计]

enter image description here

表单2[设计]

enter image description here

The method I'm trying right now is something I found here 在Form1中,我写了以下内容:
public string STARTTID
{
    get
    {
        return this.textBox3.Text;
    }
    set
    {
        this.textBox3.Text = value;
    }
}

我知道获取和设置空的文本框并不太合理,但我尝试了很多不同的解决方案,我认为应该可以解决,但是当我点击按钮时,文本框的文本就是不会改变!在form2中,当单击button1时,我编写了以下代码:

string TIDEN = DateTime.Now.ToString("HH:mm:ss tt");
Form1 first = new Form1();
first.STARTTID = TIDEN;

我想要做的是,当在form2中按下button1时,将form1中textBox3中的文本更改为当前时间。
如果这篇文章有点凌乱,请见谅,这是我的第一篇文章,英语不是我的强项。

你是否遇到了错误或者它只是无法工作? - LukeHennerley
你能发一些更完整的代码吗?比如我看不到你在哪里调用了first.show()等。 - ose
1个回答

1
问题是您创建了新的Form1并在其中更新标签,而不是在您最初的窗体中更新。
    Form1 first = new Form1();
    first.STARTTID = TIDEN;

您不需要创建新的表单,因为您已经创建了它。您可以通过使用接受表单作为参数的构造函数将Form1解析到Form2中,或者在创建Form2时为Form1创建属性并设置该属性。 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";
    }
}

很抱歉,因为我的参数、构造函数和“parse”的知识有限,我无法完全理解您的意思。能否给我展示一下需要修改的代码呢? - Kaninstek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接