嘿伙计们,我在表单之间有效地传输数据时遇到了麻烦。
所以我有我的报名表。它有一个按钮:
private void addBtn_Click(object sender, EventArgs e)
{
string data = string.Format("{0} \t {1} \t {2} \t {3} \t {4} \t {5}",
fnameTxtBox.Text,
lnameTxtBox.Text,
cellNumTxtBox.Text,
landLineTxtBox.Text,
dobPicker.Text,
commentsTxtBox.Text);
Black_Book_2010 myBlack_Book_2010 = new Black_Book_2010();
myBlack_Book_2010.info = data;
myBlack_Book_2010.ShowDialog();
}
因此,从顶部开始,它的作用是从表单上的每个txtbox获取数据,将其全部放入一个字符串中,然后将所有信息存储到“data”变量中。
然后我点击按钮将我带到第二个表格。我说,将“data”变量保存到Black_Book_2010表单的“info”变量中。
继承人Black_Book_2010表格:
在顶部我发现一个变量,我不会最终将数据存储到
中string moreData = "";
然后这是现在有数据的“info”变量:
public string info
{
set
{
moreData = value;
}
}
当表单加载时,我不会获取“moreData”变量并将其添加到列表框中:
private void Black_Book_2010_Load(object sender, EventArgs e)
{
data.Items.Add(moreData.ToString());
}
我还在Black_Book_2010表单上有一个名为Add的按钮,如果我想添加更多数据,它会将我带回我的数据输入表单。
但是当我填写表单并单击添加时,我的摘要表单再次启动,它不会加载以前的数据,它只是打开一个新的摘要表单。
我需要的是每当我点击添加到我的数据输入表单时,它会将该数据添加到现有的摘要表单而不是创建一个全新的表单。
答案 0 :(得分:1)
每次点击添加按钮,您都会创建一个新的Black_Book表单实例 所以旧的数据消失了 尝试使用表单的相同实例。
另一个解决方案是维护黑名单以外的项目列表,并让表单使用此列表。
答案 1 :(得分:1)
完全控制第二种形式制作第一种形式。
在第二个表单上创建“添加”按钮,并将单击事件处理程序附加到它,并以第一种形式处理。
在该事件处理程序中,Hide()
第二个对话框,收集数据并在准备好后再次显示。
确保您只创建一次Black_box,并根据需要显示/隐藏它。