2016-11-22 4 views
-4

私はWindowsフォームアプリケーションやC#で何か新しいアプリケーションを作成したいのですが、Enterを押すたびに新しい乱数が表示されますが、どうすればいいのかわかりません。コンソールウィンドウでC#でEnterキーを押すたびに新しい乱数を表示するアプリケーションを作成するにはどうすればよいですか?

私はこのようにそれを行う:

Boolean keepGoing = true; 
do 
{ 
    Random rand = new Random(); 
    int randomNumber = rand.Next(1, 101); 
    Console.WriteLine(randomNumber); 
    Console.ReadKey(); 
    Console.Clear(); 
} 
while (keepGoing == true); 

しかし、私は、フォントサイズやもののスタイルを設定することができるアプリケーションでそれを行う必要があります。

あなたが私を助けることができたら本当にありがとう!

+2

読みますカスタマイズしたい場合はWindowsフォームを使用します。 – FCin

答えて

3

何よりもまず、​​をループ外に宣言する必要があります。そうしないと、生成される各数値は同じになります。

キーボードなどを完全にサポートするために、あなたは簡単なWPFアプリケーションを作成し、enterが押されたかどうかを検出するために、このコードを使用したほうが良いと思います:代わりに再帰的にメソッドを実行しているの

private void input_KeyDown(object sender, KeyEventArgs e) 
{       
    if(e.KeyData == Keys.Enter) 
    { 
     // Run random number generator again 
    }    
} 

を、あなたはでしょう特定のkeyDownイベント(上記)を聞き、正しいキー(この場合はenter)が使用されたら、NewRandomNumber()を再度呼び出します。

+0

Visual StudioでWPFアプリケーションを作成した直後の手順を教えてください。それは私のWPFの知識がある限りです。自分の乱数を出力するボックスなどを作成する必要がありますか?そのボックスは、あなたが話しているメソッドを自動的に生成しますか?あなたはボックスに書き込むことができないはずです。数字だけを出力します。 WPFで何かを出力する方法もわかりません。 – PinkySmartass

+1

イベントをボタン・プレスに結びつけることも、キーダウン・イベントをリスンするテキスト・ボックスを持つこともできます。あなたがコーディングの質問を持っている場合は、アドバイスを求めるために別の質問を投稿することが自由に感じる場合は、WPFチュートリアルが何百もあります。コメントセクションは、通常、回答の議論やより深みのある説明を提供するために予約されています。 –

2

フォームのプロパティに移動し、KeyPreview = trueを設定します。

Random rdm = new Random(); 

は次に、このようにKeyDownイベントハンドラを扱う新しいランダムなインスタンスを宣言:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if(e.KeyCode==Keys.Enter) 
     { 

      int number = rdm.Next(0, 101); 
      label1.Text = number.ToString(); 

     } 
    } 
+1

ここで 'rdm'を宣言すれば、各番号は同じになります。新しい番号が必要なときではなく、「ランダム」のインスタンスを一度宣言する必要があります。 –

+0

私のために働いた..しかし、私は2分のようにそれを書いたが、私は私の答えを編集しました。 – nicoh

+1

'Random'を使った私の問題のほとんどは、ループ内で宣言することから来ています。おそらく条件文の中で違うのでしょうか?いずれにせよ、毎回それを宣言することは、とにかく不要です:) –

0

ヨ乱数の生成を取る必要があり、これを試してみてください:WPFについて

Boolean keepGoing = true; 
Random rand = new Random(); 
do 
{ 
    int randomNumber = rand.Next(1, 101); 
    Console.WriteLine(randomNumber); 
    Console.ReadKey(); 
    Console.Clear(); 
} 
while (keepGoing == true); 
関連する問題