我有2个表单,其中表单1包含文本框,表单2包含DataGridView
。因此,当我单击表单1中的搜索时,它将打开表单2并选择一个DataGridView
行,它填写表单1中的文本框。我完成了这个场景,就像在form1中单击搜索按钮我隐藏表单1,当我点击表单2中的DataGridView
行,它会显示带有填充文本框的表单1。
所以这是我的问题:如何在不隐藏表单1的情况下实现数据将从表单2提交。
以下是代码:
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 :(得分:0)
每次执行时,frmEmployeeDetails frm = new frmEmployeeDetails();
行都会创建一个新表单。除了你之前隐藏的表格。
相反,您应该使用对原始表单的引用。这是link to an SO answer,向您展示如何执行此操作。