2013-04-27 30 views
1

我正在創建一個高爾夫應用程序。這是一個9洞高爾夫球場。我創建了一個包含9個單獨文本塊的頁面,用戶可以在每個洞的分數中輸入它們。然後我有一個文本框,我希望最終的分數被放入。我知道如何做到這一點,如果我把一個按鈕添加到最後的所有分數,但我試圖讓它做,一旦得分被添加,所以當用戶輸入他們的第一個分數時,總盒子將把它放入其中,然後當第二個分數被放入其各自的盒子時,我希望它增加總分等等...所有9個街區。我有多個文本塊將填充數字。我需要他們合計在一起,然後放入另一個文本塊

我用C#創建此作爲一個Windows Phone應用程序

private void Calculate_Click(object sender, RoutedEventArgs e) 
{ 
    int x1 = int.Parse(textBox1.Text); 
    int x2 = int.Parse(textBox2.Text); 
    int x3 = int.Parse(textBox3.Text); 
    int x4 = int.Parse(textBox4.Text); 
    int x5 = int.Parse(textBox5.Text); 
    int x6 = int.Parse(textBox6.Text); 
    int x7 = int.Parse(textBox7.Text); 
    int x8 = int.Parse(textBox8.Text); 
    int x9 = int.Parse(textBox9.Text); 
    int total = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9; 
    TotalBlock.Text = total.ToString(); 
} 
+0

你能發佈你的代碼嗎? – ChrisO 2013-04-27 16:22:19

+0

private void Calculate_Click(object sender,RoutedEventArgs e) int x1 = int.Parse(textBox1.Text); int x2 = int.Parse(textBox2.Text); int x3 = int.Parse(textBox3.Text); int x4 = int.Parse(textBox4.Text); int x5 = int.Parse(textBox5.Text); int x6 = int.Parse(textBox6.Text); int x7 = int.Parse(textBox7.Text); int x8 = int.Parse(textBox8.Text); int x9 = int.Parse(textBox9.Text); int total = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9; TotalBlock.Text = total.ToString(); – ipecacFinal 2013-04-28 03:21:22

+0

對不起,我還是這個網站的新手。我不知道如何把它放在代碼的形式。但是,如果這個人輸入了所有他/她的分數並且按下了一個按鈕,我就可以設置它。但我想要做的是在有人輸入新號碼時立即更改文本框。 – ipecacFinal 2013-04-28 03:29:10

回答

0

試試這個:

textBlock1.OnTextChanged += textChanged(); 
    textBlock2.OnTextChanged += textChanged(); 
    ... 
    textBlock9.OnTextChanged += textChanged(); 

    public void textChanged(object sender, EventArgs e){ 
     int result = Convert.ToInt32(textBlock1.Text) + ... + Convert.ToInt32(textBlock9.Text); 
     finalTextBlock.Text = result.ToString(); 
    } 
+1

我嘗試過,但它不斷給我的錯誤,方法必須有一個返回類型。 – ipecacFinal 2013-04-28 02:43:27

+0

嘗試按照我在編輯的代碼中所做的那樣更改方法textChanged。 – filipko 2013-04-28 10:50:45

0

如果你把你的TextBlock的數組中的第一個,這成爲了很多更簡單:

private TextBlock[] numberTextBlocks; 

// Call this method at some point while setting up your UI 
private void Initialize() 
{ 
    this.numberTextBlocks = new TextBlock[] 
    { 
     textBlock1, textBlock2, ... 
    }; 

    foreach(t in this.numberTextBlocks) 
    { 
     t.OnTextChanged += NumberTextBlock_OnTextChanged; 
    } 
} 

private void NumberTextBlock_OnTextChanged(object sender, EventArgs e) 
{ 
    this.RecalculateTotal(); 
} 

private void Calculate_Click(object sender, RoutedEventArgs e) 
{ 
    this.RecalculateTotal(); 
} 

private void RecalculateTotal(object sender, RoutedEventArgs e) 
{ 
    int total = this.numberTextBlocks.Sum(t => int.Parse(t.Text)); 
    TotalBlock.Text = total.ToString(); 
} 
相關問題