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

时间:2015-07-01 21:52:34

标签: c# datagridview datagrid

我有两种形式。 第一个是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();
    }

然后问题是,它生成新的表单来显示每个新记录。 但我想以一种形式添加所有记录。

请有人帮助我

1 个答案:

答案 0 :(得分:0)

  1. 在“frmStudentRegistration”类中,添加“public frmStudentDetailsForm StudentDetailsForm {get; set;};”级别的财产申报。

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

  3. 另一方面,我很好奇为什么你从“frmStudentRegistration”调用“frmStudentDetailsForm”的“ShowDialog”方法。根据我的经验,要么:a)网格的Form将在add-item的Form上使用“Add”选项调用“ShowDialog”(即通过Button,Context Menu项,Insert Key和/或Enter Key(填写新的后)模板行))在网格的表格上或b)两个表格将同时保持打开(通过无模式“显示”方法调用),并在添加项目的表单上添加“添加”选项。顺便说一下,根据我的经验,你的“frmStudentRegistration”表单将被称为“frmStudentDetailsForm”,你的“frmStudentDetailsForm”将被称为“frmStudentsForm”,“frmStudentsListForm”或“frmStudentSummariesForm”等。另外,btw,.NET命名约定将是“var studentDetailsForm = new StudentDetailsForm()”(即后缀与前缀/两者并且没有缩写。)。实际上,如果由我决定,那将是“var StudentDetailsFrmObj = new StudentDetailsFrmCls()”。 ;)

    实施例

    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();
    }