使用其他表单将数据加载到数据网格

本文关键字:数据 加载 数据网 网格 其他 表单 | 更新日期: 2023-09-27 18:00:47

我有两种形式。第一个是frmStudentDetails。它有一个数据网格第二个是frmStudentRegistration。它有一些文本框和添加按钮

当用户输入一些信息并按下"添加"按钮时,我想一个接一个地将这些信息添加到数据网格中

为了实现这一点,我在frmStudentDetails 中创建了以下方法

    public void AddRecord(string StID, string Name)
    {
       DataGridViewRow row = (DataGridViewRow)dgvStDetails.Rows[0].Clone();
       row.Cells[0].Value = StID;
       row.Cells[1].Value = Name;
       dgvStDetails.Rows.Add(row);
    }

我在frmStudentRegistration表单的添加按钮上调用了它-->

    private void btnAdd_Click(object sender, EventArgs e)
    {
       frmStudentDetailsForm frm = new frmStudentDetailsForm();
       frm.AddRecord(txtStudentID.Text, txtStName.Text);
       frm.ShowDialog();
    }

然后问题是,itz生成新的表格来显示每一个新记录。但我想把所有记录都添加到一个表单中。

请有人帮我拿

  1. 在"frmStudentRegistration"类中,在类级别添加"public frmStuentDetailsForm StudentDetailsForm{get;set;};"属性声明。

  2. 将其设置为"frmStudentDetailsForm"类的实例。有几种方法可以做到这一点(即在"frmStudentRegistration"类的自定义构造函数或其"Load"事件处理程序中),但对于新手来说,我建议在实例化"frmSstudentRegistrations"类之后,在调用实例变量的"Show"方法之前设置它。注意:如果您调用"frmStudentRegistration"的"ShowDialog"方法,则对其他表单(即"frmSstudentDetailsForm")的任何更新都不会显示在屏幕上,直到您退出"ShowDialog"或明确调用其他表单的"show"或"ShowDialog"方法。

顺便说一句,我很好奇你为什么从"frmStudentRegistration"调用"frmSStudentDetailsForm"的"ShowDialog"方法。根据我的经验,要么:a)网格的表单会在添加项的表单上调用"ShowDialog",而"添加"选项(即通过按钮、上下文菜单项、插入键和/或输入键(在填写新模板行后))在网格的表单上,要么b)两个表单都会在添加项目的表单上同时保持打开(通过无模型的"显示"方法调用),根据我的经验,你的"frmStudentRegistration"表单将被称为"frmSstudentDetailsForm",而你的"FrmStudentDetailsFForm"将被称之为"frmStudentsForm"、"frmSStudentsListForm"或"frmStudentSummariesForm"等。此外,顺便说一句,.NET命名约定将是"var studentDetailsForm=new studentDetailsForm()"(即后缀与前缀/两者都有,没有缩写)。实际上,如果由我决定,它将是"var StudentDetailsFrmObj=new StudentDetailsFrmCls()"。)

Ex。

In "frmStudentRegistration":
public frmStudentDetailsForm StudentDetailsForm { get; set; }
public void main ()
{
    var studentRegistration = new frmStudentRegistration();
    var studentDetailsForm = new frmStudentDetailsForm();
    studentRegistration.StudentDetailsForm = studentDetailsForm;
    studentRegistration.Show();
}
In "frmStudentRegistration":
private void btnAdd_Click(object sender, EventArgs e)
{
   StudentDetailsForm.AddRecord(txtStudentID.Text, txtStName.Text);
   StudentDetailsForm.ShowDialog();
}

使用其他表单将数据加载到数据网格