如何传递datagridview值到另一个形式

本文关键字:另一个 何传递 datagridview | 更新日期: 2023-09-27 18:09:17

我正在使用我的c# windows应用程序,在这个应用程序中命名为"patients"和其他命名为"patientsDuplicatedName",其中包含datagridview和加载所有重复的患者名称(这和工作正常,,)但我想当选择行得到所有值到形式"患者"在运行时(已经打开),而不创建新的形式"患者"..下面是我所指的代码:

    public partial class frmPatientsNameDuplicated : Form
{
    PatientFiles frmPatientsFiles =new PatientFiles() ;
    public frmPatientsNameDuplicated()
    {
        InitializeComponent();
    }

   private void btnCancel_Click(object sender, EventArgs e)
   {
       this.Close();
   }
   private void btnOk_Click(object sender, EventArgs e)
   {
       frmPatientsFiles.txtFileNum.Text = this.dgvPatientsName.CurrentRow.Cells[0].Value.ToString();
       frmPatientsFiles.txtArbName.Text = this.dgvPatientsName.CurrentRow.Cells[1].Value.ToString();
       frmPatientsFiles.txtEngName.Text = this.dgvPatientsName.CurrentRow.Cells[2].Value.ToString();
       //frmPatientsFiles.show();//this line is creating new form and run 
       this.Close();
   }
}

对不起,我的英语不好&提前感谢

如何传递datagridview值到另一个形式

被注释掉的行frmPatientsFiles.show()有一个注释,说该行正在创建一个新表单。事实并非如此。它只是显示之前在PatientFiles frmPatientsFiles = new PatientFiles();线上创建的表单,这似乎正在创建您不想要的新表单。如果你已经有一个现有的表单,你想要更新,从你的btnOk_Click事件处理程序引用该表单。要做到这一点,您可能希望通过构造函数或其他方法/属性将对(现有)表单的引用传递给类。我希望我正确理解了你的问题。

我在这里发现了同样的问题:将数据传递给现有表单所以我的代码变成了

public partial class frmPatientsNameDuplicated : Form
{
PatientFiles frmPatientsFiles = Application.OpenForms["PatientFiles"] as PatientFiles;
public frmPatientsNameDuplicated()
{
    InitializeComponent();
}
private void btnCancel_Click(object sender, EventArgs e)
{
   this.Close();
}
private void btnOk_Click(object sender, EventArgs e)
{
   frmPatientsFiles.txtFileNum.Text = this.dgvPatientsName.CurrentRow.Cells[0].Value.ToString();
   frmPatientsFiles.txtArbName.Text = this.dgvPatientsName.CurrentRow.Cells[1].Value.ToString();
   frmPatientsFiles.txtEngName.Text = this.dgvPatientsName.CurrentRow.Cells[2].Value.ToString();
   this.Close();
}
}