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

时间:2009-06-14 21:54:32

标签: c# forms crystal-reports reportviewer

我有两种形式,一种是主要的,一种是有一个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);



    }

2 个答案:

答案 0 :(得分:4)

的ShowDialog(...)

答案 1 :(得分:2)

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

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