C# form2如何用form1中的数据
建立两个窗体Form1和Form2. 在Form1中添加五个Label, 一个ComboBox, 五个TextBox, 一个GroupBox。 一个Button。在Form2中添加一个ComboBox, 三个Label, 一个Button。在Form1中输入学生的学号,学生姓名,每门课程的成绩,按[提交]按纽,就会在Form2 中的TextBox中,显示学生的学号、学生的姓名以及每门课的成绩,并在下面Label 处显示该学生是几等。
评定等级具体算法:d=大学计算机成绩*0. 2+外语*0.2 +高等数学*0.2 +平时成绩*0.4 d>85分,为A等, d>70 分,为B等, 否则为C等。 展开
这是Form1中的字段和事件
public static string StuNumber;
public static string StuName;
public static string ScoreComputer;
public static string ScoreLanguage;
public static string ScoreHighMath;
public static string ScorePeaceTime;
private void button1_Click(object sender, EventArgs e)
{
StuNumber = this.txtStuNumber.Text;
StuName= this.txtStuName.Text;
ScoreComputer = this.txtScoreComputer.Text;
ScoreLanguage= this.txtScoreLanguage.Text;
ScoreHighMath = this.txtScoreHighMath.Text;
ScorePeaceTime= this.txtScorePeaceTime.Text;
Form2 myForm2 = new Form2();
myForm2.Show();
}
Form2中的
private void btnOK_Click(object sender, EventArgs e)
{
this.txtStuNumber.Text = Form1.StuNumber;
this.txtStuName.Text = Form1.StuName;
this.txtScoreComputer.Text = Form1.ScoreComputer;
this.txtScoreLanguage.Text = Form1.ScoreLanguage;
this.txtScoreHighMath.Text = Form1.ScoreHighMath;
this.txtScorePeaceTime.Text = Form1.ScorePeaceTime;
double d = Convert.ToInt32(txtScoreComputer.Text) * 0.2 + Convert.ToInt32(txtScoreLanguage.Text) * 0.2
+ Convert.ToInt32(txtScoreHighMath.Text) * 0.2 + Convert.ToInt32(txtScorePeaceTime.Text)*0.4;
if (d > 85)
{
this.lblRank.Text = "A";
}
else if (d > 70)
{
this.lblRank.Text = "B";
}
else
{
this.lblRank.Text = "C";
}
}
这里需要数据验证,这里我不验证了啊
这个代码意思就是静态变量传值,那个combobox我没用,应该就是叫你选择的,有好多门课的成绩,可以通过combobox选这些门课,再输入成绩的吧,或者是学号的选择,总之combobox里面可以有个集合可以选择,也可以写,我也是初学者,希望谅解!!!
二楼的有问题,form1里面差不多,但是系统默认的是textbox1,textbox2……不是txtScoreComputer……
form2里面直接用 this.txtStuNumber.Text = Form1.StuNumber;
this.txtStuName.Text = Form1.StuName;
this.txtScoreComputer.Text = Form1.ScoreComputer;
this.txtScoreLanguage.Text = Form1.ScoreLanguage;
this.txtScoreHighMath.Text = Form1.ScoreHighMath;
this.txtScorePeaceTime.Text = Form1.ScorePeaceTime;
好像用不了吧?
既然form1里面都把值赋给定义的
public static string StuName;
public static string ScoreComputer;
public static string ScoreLanguage;
public static string ScoreHighMath;
public static string ScorePeaceTime;
了,所以form2直接用Form1.StuNumber等等就可以了。
1:是form1的数据传递到form2
这个步骤只传递数据到form2中(获取表单数据通过转发到form2)
2:是form2接受form1的数据
这个步骤是接受form1的数据并且计算你的那些(评定等级具体算法:d=大学计算机成绩*0. 2+外语*0.2 +高等数学*0.2 +平时成绩*0.4 d>85分,为A等, d>70 分,为B等, 否则为C等。)然后显示在要显示的textbox中或lable中,这样就ok了!!试试吧!