从另一个静态类更改textfield的文本

本文关键字:textfield 文本 另一个 静态类 | 更新日期: 2023-09-27 18:04:35

这是我的代码。

主类

namespace winapp
{
public partial class Main_Form : Form
{
    //Here is textfield1
    public Main_Form()
    {
       InitializeComponent();
    }
 }

另一个类

namespace winapp
{
public partial class second: Form
{
   static Main_Form main_form = new Main_Form();
   string sss = "12345";
    public second()
    {
        InitializeComponent();
    }
    private void but_Click(object sender, EventArgs e)
    {
       //I want to change the text from here
        main_form.textbox1.text = this.sss;
    }    

和上面一样,我想用第二个类来改变主类中textField的文本。
但是我的textfield的文本没有改变。

如果有人能帮助我,请告诉我。

从另一个静态类更改textfield的文本

问题是您正在创建一个全新的Main_Form。相反,您可以将Main_Form的实例传递给second:

public partial class Second : Form
{
    private readonly Main_Form _mainForm;
    public Second(Main_Form mainForm) {
        _mainForm = mainForm;
    }
}

然后在MainForm上创建一个属性来访问文本框:

public ... Main_Form : Form
{
    public string MyText {
        get { return textbox1.Text; }
        set { textbox1.Text = value; }
    }
}

我不确定你在哪里创建你的second表单,但它现在看起来像这样,只要你在Main_Form中创建它:

Second secondForm = new Second(this);

然后second可以访问Main_Form's MyText属性,它将设置文本框