2016-04-25 72 views
1

我一直在为学校的程序工作,我正尝试使用构造函数在C#中的窗体之间传输字符串。我以前使用的方法在从1转换为2时工作,但现在无法将form2转换为3.代码用于10个问题的数学测验。由于通过构造函数传输字符串。错误

public Form2() 
    { 
     InitializeComponent(); 
    } 

    public Form2(string name, string age) 
    { 
     InitializeComponent(); 

     int Score; 

     int QNUM; 




    } 



     private void Form2_Load(object sender, EventArgs e) 
     { 

      } 

     private void label5_Click(object sender, EventArgs e) 
     { 

     } 

      private void button1_Click(int answer, string name, string age, int score, int QNUM, object sender, EventArgs e) 
      { 

       if (age == "Year 3") 
       { 
        Random rnd = new Random(); 
        int Number1 = rnd.Next(1, 51); 
        int Number2 = rnd.Next(1, 51); 
        int Answer = Number1 + Number2; 
        label4.Text = Convert.ToString(Number1 + " + " + Number2); 
       } 

       if(textBox1.Text == Convert.ToString(answer)) 
       { 
        score = score + 1; 
       } 
       if (textBox1.Text == Convert.ToString(answer)) 
       { 
        score = score + 1; 
       } 
        QNUM = QNUM + 1; 
        label2.Text = Convert.ToString(QNUM); 
       if (QNUM == 1) 
       { 
        button1.Text = "Next"; 
       } 
       if (QNUM == 9) 
       { 
        button1.Text = "Finish"; 
       } 

       if (QNUM == 11) 
       { 
        Form3 Name2 = new Form3 (name, score); 
        Name2.Show(); 
       } 
     } 
     }  
} 

我也已经把代码中的第三种形式

public Form3() 
    { 
     InitializeComponent(); 
    } 
    public Form3(string name, string score) 
    { 
     InitializeComponent(); 
     { 

     } 
    } 

回答

1

您已经有了一个良好的开端,但也有一些问题,你的代码:

  • name不方法button1_Click的范围。您会收到来自Form2构造函数的参数,但您从未设置过它。
  • scoreint,而不是string
  • 看来你试图通过参数Click事件处理程序。这是不可能的。改用类变量。

使用此为您Form2构造:

private string Name {get;set;} 
private int Score {get;set;} 

public Form2(string name, string age) 
{ 
    InitializeComponent(); 

    this.Name = name; 
    this.Score = 0; 
} 

这为您的Form3构造:

private string Name {get;set;} 
private int Score {get;set;} 

public Form3(string name, int score) 
{ 
    InitializeComponent(); 

    this.Name = name; 
    this.Score = score; 
} 

public Form3() : this("defaultName", 0) 
{ } 

然后调用这样的构造:

Form3 Name2 = new Form3 (this.Name, this.Score); 

然后修复你的Click事件处理程序:

private void button1_Click(object sender, EventArgs e) 
相关问题