2016-06-01 2 views
0

양식 2에는 양식 1이 있고 양식 2에는 DataGridView이 들어 있습니다. 폼 1에서 검색을 클릭하면 양식 2가 열리 며 양식 1에서는 DataGridView 행이 채워집니다. form1의 검색 버튼을 클릭하는 것과 같이이 시나리오를 완료했습니다. 양식 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입니다.

관련 문제