2014-09-26 52 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