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

时间:2014-05-22 17:46:41

标签: c# winforms textbox

这是我的代码。

主要课程

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的文本 但我的textfiled文本没有改变。

如果有人可以帮助我,请注意。

1 个答案:

答案 0 :(得分:0)

问题在于您正在创建一个全新的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属性,该属性将设置文本框。