2014-09-26 93 views
-1
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace RollTheDice 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void btnDice_Click(object sender, EventArgs e) 
     { 
      int Roll; 

      Random rand = new Random(); 

      Roll = rand.Next(0,10); 

      diceDisplay.Text = btnDice.ToString(); 

     } 
    } 
} 

無法輸出數字到文本字段,沒有錯誤,它不會工作。隨機數字不會顯示在文本框中

當按鈕被點擊系統。錯誤不會顯示在,但在構建

+5

那麼,你不是設置文本的數字。你將它設置爲btnDice.ToString()。設置diceDisplay.Text = roll.ToString()。 – 2014-09-26 21:17:36

回答

1

您沒有分配random number到TextBox,但分配Button.ToString不顯示:

int Roll; 

Random rand = new Random(); 

Roll = rand.Next(0,10); 

diceDisplay.Text = Roll.ToString(); //modified 

而且精確的代碼,並只用一條線替換:

diceDisplay.Text = new Random().Next(0,10).ToString(); 
+0

要小心這個,你通常不使用Random作爲函數範圍變量。我會一行,但與一個預先存在的「隨機」對象。你不在一個循環,所以它*技術*好,但良好的做法和所有:) – BradleyDotNET 2014-09-26 21:23:29

+0

我發現在這種情況下沒有什麼區別。他已經將它保存在一個文本框中。 – Shaharyar 2014-09-26 21:27:13

+0

重複呼叫(如果您可以點擊足夠快)會導致顯示相同的值。存儲它解決了這個問題(同樣的原因你不使用循環中的「Random」)。你*無法*點擊速度夠快,所以它確定(因此我的評論資格)。 – BradleyDotNET 2014-09-26 21:28:00

0

你應該使用roll.ToString()而不是btnDice.ToString();

+0

謝謝!這確實奏效! – 2014-09-29 13:01:11