我目前正试图有一个弹出的形式,当我点击一个按钮,它弹出。当它这样做时,你输入你的信息,然后发送回来。
请注意,可能会有一些错误,因为它不是复制和粘贴。我只包括了重要的代码
表1:
namespace estController
{
public partial class MainForm : Form
{
string Tempcustomer = "";
string TempManager = "";
string TempManagerId = "";
string TempName = "";
string TempProjectId = "";
string TempSharePointID = "";
string Tempstatus = "";
private void buttonBegin_Click(object sender, EventArgs e)
{
if(ManualEnterNumber.Checked)
{
buttonBegin.Enabled = false;
Manual_Input F2 = new Manual_Input();
F2.Show();
}
}
private void buttonNext_Click(object sender, EventArgs e)
{
MessageBox.Show("test" + TempName);
}
internal void receiveData(string boxCustomer, string boxManager, string boxManagerId, string boxName, string boxProjectId, string boxSharePointId, string boxStatus)
{
Tempcustomer = boxCustomer;
TempManager = boxManager;
TempManagerId = boxManagerId;
TempName = boxName;
TempProjectId = boxProjectId;
TempSharePointID = boxSharePointId;
Tempstatus = boxStatus;
}
}
}
表2:
namespace estController
{
public partial class Manual_Input : Form
{
private void buttonEnter_Click(object sender, EventArgs e)
{
MainForm Form = new MainForm();
Form.receiveData(boxCustomer.Text, boxManager.Text, boxManagerId.Text, boxName.Text, boxProjectId.Text, boxSharePointId.Text, boxStatus.Text);
this.Close();
}
}
}
我希望发生的是点击开始按钮。当这种情况发生时,表单2打开,我输入所需的数据。接下来,我点击按钮发送数据,然后关闭表单。数据应该保存在form1开始时初始化的变量中。最后,我可以点击下一步按钮,检查数据是否存在。
当单步执行代码时,我可以看到数据被分配,但当我点击Next按钮时,数据就消失了。
2条答案
按热度按时间33qvvth11#
这是在创建
MainForm
的 new 示例:该示例与您刚才来自的示例不相同。考虑一个类比:
一辆汽车从装配线上下线。你打开后备箱放点东西进去。过了一会儿,另一辆车从装配线上下线。这辆车在各方面都和第一辆车一模一样。当你打开第二辆车的后备箱时,你会看到你在第一辆车的后备箱里放了什么吗?
在创建
Manual_Input
的示例时,可以传递对该对象的引用。例如,将以下构造函数添加到Manual_Input
:这将要求新创建的
Manual_Input
示例需要引用MainForm
,因为它们在内部依赖MainForm
来执行任务。创建示例时传递该引用:然后,您可以在执行
Manual_Input
中的逻辑时使用该引用:oxiaedzo2#
这不是一个直接的答案,但是,可能有更干净的方法来共享公共资源和引用依赖关系。
Project.cs
Form1.cs
Form2.cs