Vb6 如何生成随机数

Vb6 如何生成随机数,vb6,Vb6,我是vb新手,我有3个文本框,我想在用户单击表单中的特定按钮时将其设置为随机值,因此: 代码如下: Private Sub cmdjouer_Click(Index As Integer) txt1 = Math.Randomize(9) txt2 = Math.Randomize(9) txt3 = Math.Randomize(9) End Sub 我得到以下错误 预期的函数或变量 我确信problom是随机函数 如果您有任何想法,我们将不胜感激 Microsoft.SPOT.Ma

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

Private Sub cmdjouer_Click(Index As Integer)
  txt1 = Math.Randomize(9)
 txt2 = Math.Randomize(9)
 txt3 = Math.Randomize(9)
End Sub
我得到以下错误
预期的函数或变量

我确信problom是随机函数

如果您有任何想法,我们将不胜感激

Microsoft.SPOT.Math.Randomize
说:

设置随机数生成的随机起点

所以它不会生成随机数,而是初始化生成器。你想要的。但更好的是,使用上级生成随机数

然而,代码有更多的问题。正如康斯坦塔在一篇评论中提到的,
txt1
等可能是文本框,因此您需要将赋值改为
txt1.text=…
等。然而,这仍然是错误的代码,不能严格按照
选项编译。因此,您需要手动转换,留下以下代码:

Dim rng As New Random()
txt1.Text = rng.Next(9).ToString()
txt2.Text = rng.Next(9).ToString()
txt3.Text = rng.Next(9).ToString()
你应该

Microsoft.SPOT.Math.Randomize
说:

设置随机数生成的随机起点

所以它不会生成随机数,而是初始化生成器。你想要的。但更好的是,使用上级生成随机数

然而,代码有更多的问题。正如康斯坦塔在一篇评论中提到的,
txt1
等可能是文本框,因此您需要将赋值改为
txt1.text=…
等。然而,这仍然是错误的代码,不能严格按照
选项编译。因此,您需要手动转换,留下以下代码:

Dim rng As New Random()
txt1.Text = rng.Next(9).ToString()
txt2.Text = rng.Next(9).ToString()
txt3.Text = rng.Next(9).ToString()
试试这个

' 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)
试试这个

' 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)

你把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
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
正如其他人指出的,您不希望将文本框引用变量设置为数字(例如,
txt1=…
)。您需要设置文本框的
Text
属性


此外,正如下面的评论所指出的,我调用了
Randomize
或在按钮的
单击事件中创建了
新的Random
对象。我这样做是为了简化示例,但实际上,这是一种糟糕的做法。在这两种情况下,理想情况下,随机数生成器的种子设定应该只发生一次,通常是在应用程序启动时。通过每次重新设定生成器种子,可以减少结果的随机性。

您将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
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
正如其他人指出的,您不希望将文本框引用变量设置为数字(例如,
txt1=…
)。您需要设置文本框的
Text
属性


此外,正如下面的评论所指出的,我调用了
Randomize
或在按钮的
单击事件中创建了
新的Random
对象。我这样做是为了简化示例,但实际上,这是一种糟糕的做法。在这两种情况下,理想情况下,随机数生成器的种子设定应该只发生一次,通常是在应用程序启动时。通过每次重新设定生成器种子,可以减少结果的随机性。

使用
Rnd
。因此,您不用
Math.Randomixe(9)
,而是使用
Int((Rnd*9)+1)
来获得1到9之间的随机整数。除了前面提到的内容之外,如果txt1是一个文本框,您可能需要txt1.Text=@David,这些是旧的VB6函数,仅在VB.NET中提供用于向后兼容。最好使用随机类。请改用
Rnd
。因此,您不用
Math.Randomixe(9)
,而是使用
Int((Rnd*9)+1)
来获得1到9之间的随机整数。除了前面提到的内容之外,如果txt1是一个文本框,您可能需要txt1.Text=@David,这些是旧的VB6函数,仅在VB.NET中提供用于向后兼容。Random类更可取。这些是旧的VB6函数,仅在VB.NET中提供,用于向后兼容。
Random
类更好。我是一个vb6老人。但我很高兴它仍然有效。我必须以我所知道的方式使用新的VB.Net:)这些是旧的VB6函数,仅在VB.Net中提供用于向后兼容。
Random
类更好。我是一个vb6老人。但我很高兴它仍然有效。我必须使用我知道的新的VB.Net方式:)我得到这个错误:语法错误Dim r As new Random()有问题。那个么如何导入系统。VB中的随机类。很抱歉这个愚蠢的问题。我是这样写的:Dim r作为新系统