1

我有两种形式,主要一种有一个水晶报告查看器,另一种是用户介绍他想在报告中出现的用户的 ID。问题我希望用户在报表加载信息之前引入ID,所以当用户在报表加载信息之前单击CreateReport按钮时,我创建了一个新表单来引入ID,问题是指令继续即使新窗口打开也执行。我知道是逻辑问题而不是程序问题,也许您可​​以帮助我=)。我在表单中创建了一个构造函数,以便可以传递值。

这是按钮的代码:

    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);



    }
4

2 回答 2

4

显示对话框(...)

于 2009-06-14T21:58:41.593 回答
2

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

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

于 2009-06-14T22:05:38.067 回答