使用C#传递表单中的值并以另一种形式在DataGridView中查看

时间:2016-08-04 09:17:13

标签: c# .net winforms

我有两种形式:ScienceHome和Eligibility。

  • ScienceHome表单有几个ComboBox和textBoxes以及一个名为“Check Eligibility”的按钮
  • Eligibility表单有一个DataGridView,用于按列显示数据。

现在,当我点击ScienceHome表单上的“Check Eligibility”按钮时,我希望所有textBoxes和ComboBox中的数据都传递到Eligibilty表单并填充DataGridView。

我该怎么做?

ScienceHome表单截图:

ScienceHome form screenshot

Eligibity表单截图:

Eligibity form screenshot

2 个答案:

答案 0 :(得分:0)

将具有表单类型的参数添加到Eligibility的构造函数中:

public Eligibility(ScienceHome frm) {
    // Do whatever you want with frm
}

然后调整您的代码,以便传递参数:

Eligibility e = new Eligibility(this);
e.Show();

编辑:正如瓦希德所说,这不是好习惯。您也可以将每个字段放入构造函数中,如:

public Eligibility(string bangla, string english) { // Continue like this until you have all fields
    // Do whatever you want with the parameters
}

然后调用构造函数,如:

Eligibility e = new Eligibility(textBox1.Text, textBox2.Text, textBox3.Text); // Continue until you have all fields
e.Show();

答案 1 :(得分:0)

很抱歉把它放到另一个答案中,但我不允许发表评论......

像Jean Luc一样说:

在你的Eligibity表单中,只需创建构造函数,例如:

public Eligibity(String subject1, String subject2){
//use the Strings in your Eligibity form
}

在您的ScienceHome表单中,您可以通过以下方式调用Eligibity的构造函数:

private void checkEligibility_Click(object sender, EventArgs e){
    Eligibity eligibity = new Eligibity(textBox_Bangla.Text,textBox_English.Text);
}

checkEligibility_Click()是您的按钮'click'-event并通过调用

new Eligibity(textBox_Bangla.Text,textBox_English.Text);

您将参数(您的主题作为字符串)传递给您的Eligibity表单的构造函数并在那里使用它们。