1

私はvbが初めてで、ユーザーがフォームの特定のボタンをクリックしたときにランダムな値に設定したい3つのテキストボックスがあり
ます:コードは次のとおりです:

Private Sub cmdjouer_Click(Index As Integer)
  txt1 = Math.Randomize(9)
 txt2 = Math.Randomize(9)
 txt3 = Math.Randomize(9)
End Sub

次のエラーが表示されます expected function or variable

問題はランダム化機能にあると確信しています。

どんなアイデアでも大歓迎です

4

3 に答える 3

12

VB.NETとVB6を混同しています。それらは互いに大幅に異なります。今後、オンラインで例、ドキュメント、ヘルプを探すときは、必ずVB6を指定して、正しい言語を扱っていることを確認してください。それらは本質的に2つの完全に異なる言語です。

VB6

VB6では、最初に関数を使用して乱数ジェネレーターをシードする必要がありRandomizeます。次に、乱数を生成するには、次のRnd関数を使用する必要があります。

Private Sub cmdjouer_Click(Index As Integer)
    Randomize()
    txt1.Text = Int((Rnd * 9) + 1)
    txt2.Text = Int((Rnd * 9) + 1)
    txt3.Text = Int((Rnd * 9) + 1)
End Sub

VB.NET

Math.RandomizeSmart Personal Objects Technology(SPOT)名前空間のメソッドです。それがあなたが実際に探しているものではないかと思います。System.Randomおそらく、次のようにクラスを使用したいだけです。

Private Sub cmdjouer_Click(sender As Object, e As EventArgs) Handles cmdjouer.Click
    Dim r As New Random()
    txt1.Text = r.Next(9).ToString()
    txt2.Text = r.Next(9).ToString()
    txt3.Text = r.Next(9).ToString()
End Sub

他の人が指摘しているように、テキストボックスの参照変数を数値(例txt1 = ...)に設定する必要はありません。Textテキストボックス のプロパティを設定する必要があります。

また、以下のコメントで指摘されているように、ボタンのイベント内でオブジェクトを呼び出しRandomizeたり作成したりしました。例を単純化するためにそうしましたが、実際には、それは悪い習慣になります。いずれの場合も、乱数ジェネレーターのシードは、理想的には1回だけ、通常はアプリケーションの起動時に発生する必要があります。ジェネレーターを毎回再シードすることにより、結果のランダム性が低下する可能性があります。New RandomClick

于 2013-02-19T17:21:38.913 に答える
2
于 2013-02-19T17:19:34.740 に答える
2

Try this

' Initialize the random-number generator.
Randomize()
' Generate random value between 1 and 6.
Dim value As Integer = CInt(Int((6 * Rnd()) + 1)) txt1.text = cstr(value)
于 2013-02-19T17:20:08.630 に答える