标签的值已修改,但在表单中未更改

本文关键字:表单 修改 标签 | 更新日期: 2023-09-27 18:27:26

这里有两个表单,我想将数据从辅助表单(AddUserForm)传递到主表单(Form1)。我的问题是这不起作用
例如,我在Form1中输入了以下内容:

AddUserForm secondaryform = new AddUserForm();
secondaryform.label1.Text = "I was created in AddUserForm and will change my text here in Form1!";

这是有效的。我可以使用它来更改Form1中AddUserForm标签的值和文本,但不能反之亦然
现在看这个,在第二种形式中使用相同的方法:

Form1 primaryform = new Form1();
primaryform.label1.Text = "I was created in Form1 and will change my text here in AddUserForm!";

这行不通!标签文本不变
我使用MessageBox向我显示了标签的内容,并向我显示指示的文本(我是在Form1中创建的,将在AddUserForm中更改我的文本!)
通过这种方式,我可以得出结论,标签的值发生了更改,但表单中的文本保持不变
如果我以次要形式添加引用,为什么这不起作用?有人能帮忙吗?我真的需要解决这个问题!提前感谢大家!

标签的值已修改,但在表单中未更改

您的代码显示,在尝试设置label1.Text而不是引用现有的Form1时,您正在创建Form1的新实例。AddUserForm中需要一个变量,该变量可以包含对Form1的引用。

您应该在AddUserForm中添加以下内容:

public Form1 MyForm1;

然后,将第一个代码块更改为(假设创建AddUserForm的是Form1

AddUserForm secondaryform = new AddUserForm();
secondaryform.MyForm1 = this;
secondaryform.label1.Text = "Text";

然后将您的第二个代码块更改为:

MyForm1.label1.Text = "Text";