title: open form with crystalreportsviewer using C#
body: <p>I'm working on one application. in datagridview I have created event <code>dataGridView1_CellContentDoubleClick</code> which would supposed to open another form that has <code>crystalreportviewer component</code>, then pass the path of the crystalreportdocument to the crystalreportviewer and load that report so it can present data...</p>
  
  <p>so far I have done this:</p>
  
  <pre><code>    private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
      {
          //string that carries path of the report document
          string path = dataGridView1.SelectedRows[0].Cells["ReportPath"].Value.ToString();
  
      }
  </code></pre>
  
  <p>Form3 looks like:</p>
  
  <pre><code>using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Linq;
  using System.Text;
  using System.Windows.Forms;
  
  namespace ICAMReports
  {
     public partial class Form3 : Form
     {
          public Form3(string path)
          {
              InitializeComponent();
          }
     }
  }
  </code></pre>
  
  <p>Form3.Designer looks like:</p>
  
  <pre><code>namespace ICAMReports
  {
       partial class Form3
       {
          /// &lt;summary&gt;
          /// Required designer variable.
          /// &lt;/summary&gt;
          private System.ComponentModel.IContainer components = null;
  
          /// &lt;summary&gt;
          /// Clean up any resources being used.
          /// &lt;/summary&gt;
          /// &lt;param name="disposing"&gt;true if managed resources should be disposed; otherwise, false.&lt;/param&gt;
      protected override void Dispose(bool disposing)
      {
          if (disposing &amp;&amp; (components != null))
          {
              components.Dispose();
          }
          base.Dispose(disposing);
      }
  
      #region Windows Form Designer generated code
  
      /// &lt;summary&gt;
      /// Required method for Designer support - do not modify
      /// the contents of this method with the code editor.
      /// &lt;/summary&gt;
      private void InitializeComponent()
      {
  
          this.crystalReportViewer1 = new CrystalDecisions.Windows.Forms.CrystalReportViewer();
          this.SuspendLayout();
          // 
          // crystalReportViewer1
          // 
          this.crystalReportViewer1.ActiveViewIndex = -1;
          this.crystalReportViewer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
          this.crystalReportViewer1.Cursor = System.Windows.Forms.Cursors.Default;
          this.crystalReportViewer1.Dock = System.Windows.Forms.DockStyle.Fill;
          this.crystalReportViewer1.Location = new System.Drawing.Point(0, 0);
          this.crystalReportViewer1.Name = "crystalReportViewer1";
          this.crystalReportViewer1.Size = new System.Drawing.Size(609, 413);
          this.crystalReportViewer1.TabIndex = 0;
          // 
          // Form3
          // 
          this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
          this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
          this.ClientSize = new System.Drawing.Size(609, 413);
          this.Controls.Add(this.crystalReportViewer1);
          this.Name = "Form3";
          this.Text = "Form3";
          this.ResumeLayout(false);
  
      }
  
      #endregion
  
      private CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer1;
      }
  }
  </code></pre>