2012-10-25 27 views
1
public partial class Addition : System.Web.UI.UserControl 
    { 
     int Add1; 
     int Add2; 
     int answer; 

     protected void Page_Load(object sender, EventArgs e) 
     { 

    } 
    protected void Button2_Click(object sender, EventArgs e) 
    { 

     //Generates ramdom numbers for addition problem 
     Random oRand = new Random(); 

     Add1 = oRand.Next(30); 
     Add2 = oRand.Next(30); 

     Label1.Text = Add1.ToString(); 
     Label2.Text = Add2.ToString(); 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 

     //Validates users answer 
     answer = Convert.ToInt32(TextBox1.Text); 

     if (Add1 + Add2 != answer) 
      Label3.Text = "InCorrect Answer"; 
     else 
      Label3.Text = "Correct Answer"; 

     } 
    } 

我一直在尋找這過去30分鐘,我知道它簡單的東西,我失蹤了。當我執行程序並在TextBox1中放置正確的答案時,Label3仍會生成「InCorrect Answer」。我知道這是補救措施,但我做錯了什麼?我的加法邏輯不工作在C#代碼

感謝

+2

當你調試的button1_Click處理程序中,你看到了ADD1和ADD2的任何值? – IronMan84

回答

1

嘗試了這一點:

Add1 = Convert.ToInt32(Label1.Text); 
Add2 = Convert.ToInt32(Label2.Text); 

answer = Convert.ToInt32(TextBox1.Text); 

if (Add1 + Add2 != answer) 
    Label3.Text = "InCorrect Answer"; 
else 
    Label3.Text = "Correct Answer"; 
3

用戶控件回發時(並在每個網頁加載),所以當你設置的​​和Add2值,它們會在回傳丟重建。

您應該使用容器ViewStateSession來保存這些值。

編輯:

或者像@ IronMan84建議,只需要使用標籤(杜)。