从另一个静态类更改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的文本没有改变。
问题是您正在创建一个全新的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属性,它将设置文本框