这是我的代码。
主要课程
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文本没有改变。
如果有人可以帮助我,请注意。
答案 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属性,该属性将设置文本框。