单击按钮更改其他表单中的文本

时间:2013-05-21 08:23:10

标签: c# winforms label

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

Form1中[设计]

enter image description here

窗体2 [设计]

enter image description here

我正在尝试的方法是我找到的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时的当前时间。

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

1 个答案:

答案 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";
    }
}