从form1中的控件获取值到新表单C#

时间:2011-10-15 14:15:57

标签: c# winforms

我正在尝试在新表单上创建一个click事件,该事件获取form1中控件的text属性。

我创建了一个公共方法,它返回我需要的值,但返回的值始终为null。我到处寻找这个。

Form1中:

public List<string> returner()
{
    List<string> thevalues = new List<string>();

    thevalues.Add(textbox1.Text);
    thevalues.Add(textbox2.Text);

    return thevalues;
}

窗体2:

Form1 x = new Form1();

List<string> values = x.returner();
label1.Text = values[0];
label2.Text = values[1];

我的问题是没有返回值,因为Im声明了Form1的新实例,而不是使用其中包含值的实例(我猜)。

2 个答案:

答案 0 :(得分:1)

是的,这可以解释出现了什么问题。基本上你需要告诉Form2有关Form1的相关实例。具体如何做到这一点将取决于构建一切的内容。例如,您可能有:

Form1 form1 = new Form1();
Form2 form2 = new Form2();
form2.Form1 = form1;

或者您可以将构造函数中的引用传递给Form2

如果那些确实是你的表单的名字,顺便说一句,我强烈建议你将它们重命名为更有意义的东西 - 表示表单目的的东西。同样returner不仅违反了.NET命名约定,而且也没有解释它正在做什么。

答案 1 :(得分:0)

你搞砸了你的代码..如果你想得到一个文本的值,就这样使用它。 string textValue = form1.textbox1.Text 或..因为你没有在这里发布完整的代码..试试这个而不是创建对象form1.returner();