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

时间:2014-10-22 20:56:40

标签: c# .net winforms label

好吧,我在这里有两个表单,我想将数据从辅助表单(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中更改我的文本!)通过这种方式我可以得出结论标签的值已更改,但表单中的文本保持不变!
如果我以二级形式添加引用,为什么这不起作用?有人可以帮忙吗?我真的需要解决这个问题!提前谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

public Form1 MyForm1;

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

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

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

MyForm1.label1.Text = "Text";