2014-09-26 1 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(); 

     } 
    } 
} 

텍스트 필드에 숫자를 출력 할 수 없으므로 오류가 발생하지 않습니다.임의 번호가 텍스트 상자에 나타나지 않습니다.

버튼을 클릭하면 시스템이됩니다. 오류가 그것을 보여 않지만 텍스트 상자에 random number를 할당하지만 Button.ToString 할당되지 않은

+5

글자를 숫자로 설정하지 않았습니다. btnDice.ToString()으로 설정합니다. diceDisplay.Text = roll.ToString()을 설정하십시오. –

답변

1

빌드에 표시되지 않습니다

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'을 사용하지 않는 것입니다. 나는 한 줄짜리지만, 기존의'Random' 객체를 가지고 있습니다. 당신은 반복적 인 것이 아니기 때문에 기술적으로는 괜찮습니다. 그러나 좋은 연습과 모든 것 : – BradleyDotNET

+0

이 시나리오에서는 아무런 차이가 없습니다. 그는 이미 텍스트 상자에 저장하고 있습니다. – Shaharyar

+0

반복 호출 (충분히 빠르게 클릭 할 수있는 경우)은 동일한 값을 표시합니다. 그것을 저장하면이 문제가 해결됩니다 (루프에서'Random'을 사용하지 않는 것과 같은 이유). 당신은 충분히 빨리, 그래서 그것의 ok (따라서 나의 코멘트에 대한 자격)를 클릭 할 수 없습니다. – BradleyDotNET

0

btnDice.ToString() 대신 roll.ToString()을 사용해야합니다.

+0

감사합니다! 그게 효과가 있었어! –

관련 문제