将文本框值分配给单独表单中的字段

时间:2014-01-20 02:19:24

标签: c# forms textbox event-handling

我确信这是一个容易回答的问题,但我很难实现它的需要。

我正在使用Visual Studio 2013和C#

我有两种形式,一种在应用启动时加载,包含用户可选择的设置,例如用户ID,屏幕上需要多少个拼图......以及确认按钮。

第二种形式就像一个拼图网格,当用户点击第一个表单上的确认按钮时生成。

当此人正确解决了拼图时,会弹出一个消息框,其中包含解决问题所需的时间。

我希望能够做的是将用户ID字段添加到消息框字符串中。

我已经看过许多使用事件参数和获取和设置字段的例子,但大多数假设一个表单是从前一个表单生成的,我只是想抓住'来自一个表单的信息并将其存储在第二个表单中以供字符串使用。

如果更容易,也可以理解教程链接。


在每个人的帮助下,我发现了我做错了什么。

我在第一个表单上声明了变量,但是当它们应该在类的最顶层声明时,它们在textbox_leave和updownBox_leave方法中声明。

然后我从Form2中调用了Form1.IdString和Form1.puzzleNumberString,并且我知道应该知道所有事情的进展情况。

2 个答案:

答案 0 :(得分:3)

这很简单。您需要做的就是将您的id变量传递给第二个表单构造函数。例如,在您的确认按钮中单击:

Form2 f2 = new Form2(myVariable);
f2.Show();

你应该在Form2:

中添加一个构造函数
public string ID { get; set; }

public Form2(string id)
{
    InitializeComponent();
    ID = id;
}

然后您可以在第二种形式中使用ID变量。

答案 1 :(得分:0)

在拼图形式中创建一个全局Form变量,然后为构造函数提供Form f参数,并将全局form变量设置为传递的参数:

public Form form = null;
public PuzzleForm(Form f) //puzzle form constructor
{
    form = f;
}

然后进入你的第一个表单,在那里你创建一个拼图形式的实例,改变它,以便它传递一个这样的实例。

PuzzleForm pf = new PuzzleForm(this);

现在,从您的Puzzle表单中,您可以访问Form1变量,如MessageBox.Show("UserID: "+form.userID.Text);