父窗体点击btnAdd打开窗体A,在窗体A中完成操作后(点击确定按钮),返回数据,并打开B窗体我的实现代码:
A窗体:
private void btnOK_Click(object sender, EventArgs e)
{
if (!DoValid()) return;
string str = "";
foreach (string strSpNo in strSpPlanArr)
{
str = str + strSpNo + ",";
} str = str.TrimEnd(',');
PlanSelectedEvent(this, new PlanSelectedEventArgs { spPlanNoList = str });
}
父窗体: private void btnAdd_Click(object sender, EventArgs e)
{
frmPlanSelect.Width = 175;
frmPlanSelect.ReferForm = this;
frmPlanSelect.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
frmPlanSelect.MaximizeBox = false;
frmPlanSelect.ShowDialog();
} private void onPlanSelected(object sender, PlanSelectedEventArgs e)
{
strSpNoList = e.spPlanNoList;
frmPlanSelect.Close();
ShowEditForm();
}
/// <summary>
/// 显示编辑页
/// </summary>
/// <param name="iSpID"></param>
void ShowEditForm()
{
frmCharegeAgainsetEdit frm = new frmCharegeAgainsetEdit();
int iwidth = (int)((float)Screen.PrimaryScreen.WorkingArea.Width * 0.9F);
if (iwidth > 1200) iwidth = 1200;
frm.Width = iwidth;
frm.strSpNoList = strSpNoList;
frm.ReferForm = this;
frm.ShowDialog();
}
}
private void frmStoreChargeAgainst_Load(object sender, EventArgs e)
{
frmPlanSelect.PlanSelectedEvent += new frmChargeAgainstPlanSelect.PlanSelectedEventHandler(onPlanSelected);
}结果是窗体B能正常打开了,但A窗体并没有我想要的关闭掉。在线等啊~~WinForm
A窗体:
private void btnOK_Click(object sender, EventArgs e)
{
if (!DoValid()) return;
string str = "";
foreach (string strSpNo in strSpPlanArr)
{
str = str + strSpNo + ",";
} str = str.TrimEnd(',');
PlanSelectedEvent(this, new PlanSelectedEventArgs { spPlanNoList = str });
}
父窗体: private void btnAdd_Click(object sender, EventArgs e)
{
frmPlanSelect.Width = 175;
frmPlanSelect.ReferForm = this;
frmPlanSelect.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
frmPlanSelect.MaximizeBox = false;
frmPlanSelect.ShowDialog();
} private void onPlanSelected(object sender, PlanSelectedEventArgs e)
{
strSpNoList = e.spPlanNoList;
frmPlanSelect.Close();
ShowEditForm();
}
/// <summary>
/// 显示编辑页
/// </summary>
/// <param name="iSpID"></param>
void ShowEditForm()
{
frmCharegeAgainsetEdit frm = new frmCharegeAgainsetEdit();
int iwidth = (int)((float)Screen.PrimaryScreen.WorkingArea.Width * 0.9F);
if (iwidth > 1200) iwidth = 1200;
frm.Width = iwidth;
frm.strSpNoList = strSpNoList;
frm.ReferForm = this;
frm.ShowDialog();
}
}
private void frmStoreChargeAgainst_Load(object sender, EventArgs e)
{
frmPlanSelect.PlanSelectedEvent += new frmChargeAgainstPlanSelect.PlanSelectedEventHandler(onPlanSelected);
}结果是窗体B能正常打开了,但A窗体并没有我想要的关闭掉。在线等啊~~WinForm
首先你这么传递数据就有问题,太麻烦了你为何不做一个全局的类呢,然后把需要传递的数据赋给全局值点击ok返回dialogue.result ok 来判断是否点击了确定按钮比你这样简单都了
{
A.返回的数据
B.ShowDialog()
}
首先你这么传递数据就有问题,太麻烦了你为何不做一个全局的类呢,然后把需要传递的数据赋给全局值点击ok返回dialogue.result ok 来判断是否点击了确定按钮比你这样简单都了
那如何才能达到这种效果呢?
+1