Windows窗体之间的值表示在C#.NET中

我有两种forms,一种是主要的,一种是有一个crystalreportviewer,另一种是用户在报告中引入他想要的用户的ID。 问题我希望用户在报告加载信息之前引入ID,因此当用户在报告加载信息之前单击CreateReport按钮时,我创建了一个新表单来引入ID,问题是指令继续即使新窗口打开也要执行。 我知道是逻辑问题,而不是programmin,也许你可以帮助我=)。 我在表单中创建了一个构造函数,以便可以传递值。

这是按钮的代码:

private void usuariosToolStripMenuItem_Click(object sender, EventArgs e) { RPE formRPE = new RPE(); //NEW FORM CREATED frmRPE.Show();//RPE FORM CALLED this.Hide(); //BUT IT GOES ON ReportDocument guantesRpt = new reporteGuantes(); DataTable datatableGuantes = reporteguantes.obtenerTabla(); guantesRpt.SetDataSource(datatableGuantes); rptViewerGuantes.ReportSource = guantesRpt; // Usuariorpt.SetParameterValue("RPE", RPE); } 

的ShowDialog(…)

当您需要无模式窗体时,使用Form.show()。 因此,当您调用show时,它会将表单设置为在其上运行,然后继续执行您调用show的代码。

由于您要阻止用户输入和代码执行,直到它们处理您的报告ID表单,您需要一个模式表单。 因此,请查看Form.ShowDialog(),它将阻止执行,直到表单被解除,然后将为您提供一个DialogResult,您可以从中检索用户的结果,然后从表单实例获取任何表单特定信息。 这是ShowDialog()的msdn