如何生成随机数

Ami*_*ira 1 vb6

我是vb的新手,我有3个文本框,当用户点击表单中的特定按钮时,我想将其设置为随机值:
这是代码:

Private Sub cmdjouer_Click(Index As Integer)
  txt1 = Math.Randomize(9)
 txt2 = Math.Randomize(9)
 txt3 = Math.Randomize(9)
End Sub
Run Code Online (Sandbox Code Playgroud)

我收到以下错误 expected function or variable

我确信问题在于Randomize函数.

任何想法将不胜感激

Ste*_*art 10

您将VB.NET与VB6混淆.它们彼此截然不同.将来,当您在线查找示例,文档和帮助时,请务必指定VB6以确保您正在使用正确的语言.它们本质上是两种完全不同的语言.

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
Run Code Online (Sandbox Code Playgroud)

VB.NET

Math.Randomize是智能个人对象技术(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
Run Code Online (Sandbox Code Playgroud)

正如其他人指出的那样,您不希望将文本框引用变量设置为数字(例如txt1 = ...).您需要设置Text文本框的属性.

另外,正如下面的评论中所指出的,我在按钮的事件中调用Randomize或创建了New Random对象Click.我这样做是为了简化示例,但实际上,这将是不好的做法.在任何一种情况下,理想情况下,随机数发生器的播种应该只发生一次,通常是在应用程序启动时.通过每次重新播种发生器,可以使结果不那么随机.

  • 请注意,您应该只在应用程序启动时调用(VB ^)`Randomize`. (3认同)