3

我一直在尝试通过单击 Form2 中的按钮(form2 中的按钮 1 是“STARTA”)来更改 Form1 中文本框的文本,现在可能花了 2 个小时(我是一个编程新手!)。我一直在寻找类似的问题并找到了一堆,但即使尝试了很多,我也无法让它发挥作用。

表格1[设计]

在此处输入图像描述

Form2[设计]

在此处输入图像描述

我现在正在尝试的方法是我在这里找到的

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

我想要做的是,我希望 form1 中的 textBox3 中的文本更改为按下 form2 中的 button1 时的当前时间。

抱歉,如果这篇文章有点乱,这是我的第一篇文章,英语不是我最擅长的语言。

4

1 回答 1

1

问题是您在该标签上创建新Form1标签和更新标签,而不是在初始形式中

    Form1 first = new Form1();
    first.STARTTID = TIDEN;

您不需要创建新表单,因为您已经创建了它。您可以做的是在使用接受 Form 作为参数的构造函数创建 Form2 时将 Form1 解析为 Form2。或在 Form2 中为 Form1 创建属性并在创建 Form2 时设置该属性。

表格1

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";
    }
}
于 2013-05-21T08:29:51.637 回答