2009-06-14 5 views
1

私は2つのフォームを持っています。メインフォームにはcrystalreportviewerがあり、もう1つはレポートにしたいユーザーのIDを紹介しています。問題レポートが情報をロードする前にIDを導入したいので、ユーザーがレポートをロードする直前にCreateReportボタンをクリックすると、IDを導入するための新しいフォームが作成されました。新しいウィンドウが開いていても実行されます。私はprogramminの代わりにロジックの問題があることを知っているかもしれませんが、おそらくあなたは私を助けることができます=)。 フォームにコンストラクタを作成して、値を渡すことができます。ここでC#.NETのウィンドウ間の値

がボタンのコードです:

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

にShowDialog(...)

+0

ありがとうございました!それは完全に – hyeomans

2

Form.show()あなたはモードレスフォームをしたいときに使用されます。だからあなたがショーを呼び出すと、それを実行するフォームを設定し、ショーを呼び出した場所でコードを実行し続けます。

レポートIDフォームを処理するまで、ユーザー入力とコードの実行をブロックしたいので、モーダルフォームが必要です。 Form.ShowDialog()は、フォームが終了するまで実行をブロックし、ユーザーから結果を取得してフォームインスタンスからフォーム固有の情報を取得できるDialogResultを提供します。 Here is the msdn for ShowDialog()

+0

ありがとう、私はmsdnのページを読む! – hyeomans

関連する問題