我有两种形式。 第一个是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();
}
然后问题是,它生成新的表单来显示每个新记录。 但我想以一种形式添加所有记录。
请有人帮助我
答案 0 :(得分:0)
在“frmStudentRegistration”类中,添加“public frmStudentDetailsForm StudentDetailsForm {get; set;};”级别的财产申报。
将其设置为等于“frmStudentDetailsForm”类的实例。有几种方法可以这样做(即在“frmStudentRegistration”类的自定义构造函数或其“加载”事件处理程序),但对于新手,我建议您在实例化“frmStudentRegistration”类之后,在调用之前设置它实例变量的“显示”方法。注意:如果您调用“frmStudentRegistration”的“ShowDialog”方法,则在您退出“ShowDialog”或明确调用其他表单的“显示”或“”之前,其他表单的任何更新(即“frmStudentDetailsForm”)都不会显示在屏幕上ShowDialog“Methods。
另一方面,我很好奇为什么你从“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();
}