2016-06-01 33 views
0

フォーム1にはテキストボックスがあり、フォーム2にはDataGridViewという2つのフォームがあります。フォーム1で検索をクリックすると、フォーム2が開き、1つを選択するとDataGridView行がフォーム1のテキストボックスを塗りつぶします。フォーム1の検索ボタンをクリックすると、フォーム1が非表示になり、DataGridView行フォーム2は、フォーム1に塗りつぶしされたテキストボックスを表示します。だからここ別のフォームにdatagridviewの値を送信

は私の問題である:

private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) 
    { 
     try 
     { 
      DataGridViewRow dr = dataGridView1.SelectedRows[0]; 
      this.Hide(); 
      frmEmployeeDetails frm = new frmEmployeeDetails(); 
      frm.Show(); 
      frm.txtStaffID.Text = dr.Cells[0].Value.ToString(); 
      frm.txtStaffName.Text = dr.Cells[1].Value.ToString(); 
      frm.txtDepartment.Text = dr.Cells[2].Value.ToString(); 
      frm.cmbGender.Text = dr.Cells[3].Value.ToString(); 
      frm.DOB.Text = dr.Cells[4].Value.ToString(); 
      frm.txtFatherName.Text = dr.Cells[5].Value.ToString(); 
      frm.txtPAddress.Text = dr.Cells[6].Value.ToString(); 
      frm.txtTAddress.Text = dr.Cells[7].Value.ToString(); 
      frm.txtPhoneNo.Text = dr.Cells[8].Value.ToString(); 
      frm.txtMobileNo.Text = dr.Cells[9].Value.ToString(); 
      frm.dtpDateOfJoining.Text = dr.Cells[10].Value.ToString(); 
      byte[] data = (byte[])dr.Cells[11].Value; 
      MemoryStream ms = new MemoryStream(data); 
      frm.pictureBox1.Image = Image.FromStream(ms); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     }` 
+0

これはちょっとした見解ですが、Windowsフォームを使用している理由は何ですか?なぜWPFまたはUWPを利用しないのですか?あなたはXAMLとバインディングフレームワークの力を持っています。 –

答えて

0

がラインfrmEmployeeDetails frm = new frmEmployeeDetails();が作成されます達成するためにどのように、フォーム1を隠すことなく、そのデータはここで

形2から提出される予定では、コードですそれが実行されるたびに新しいフォーム。これまでに隠されたフォームに加えて。

代わりに元のフォームへの参照を使用する必要があります。これを行う方法を示すlink to an SO answerがここにあります。

関連する問題