我确信这是一个容易回答的问题,但我很难实现它的需要。
我正在使用Visual Studio 2013和C#
我有两种形式,一种在应用启动时加载,包含用户可选择的设置,例如用户ID,屏幕上需要多少个拼图......以及确认按钮。
第二种形式就像一个拼图网格,当用户点击第一个表单上的确认按钮时生成。
当此人正确解决了拼图时,会弹出一个消息框,其中包含解决问题所需的时间。
我希望能够做的是将用户ID字段添加到消息框字符串中。
我已经看过许多使用事件参数和获取和设置字段的例子,但大多数假设一个表单是从前一个表单生成的,我只是想抓住'来自一个表单的信息并将其存储在第二个表单中以供字符串使用。
如果更容易,也可以理解教程链接。
在每个人的帮助下,我发现了我做错了什么。
我在第一个表单上声明了变量,但是当它们应该在类的最顶层声明时,它们在textbox_leave和updownBox_leave方法中声明。
然后我从Form2中调用了Form1.IdString和Form1.puzzleNumberString,并且我知道应该知道所有事情的进展情况。
答案 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);