vb为表单位置生成随机数

时间:2016-08-03 01:19:26

标签: vb.net random integer location

我正在Visual Studio中制作一个可视化的基本程序,其中会显示相当多的表单。然而,它们都是一堆弹出的,只有一些是可见的。我想知道是否有办法在两个数字之间生成一个随机整数,然后将其设置为New Form1的位置。 现在我有这个:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 
        Dim more As New Form1
        (Code for generating random number from 1 to 999)
        (Code for generating new random number from 1 to 999)
        more.Location = New Point(random number, new random number)
        more.Show()
        time = 10
End Sub

2 个答案:

答案 0 :(得分:0)

所以你应该可以使用它。基本上,它允许您设置上限和下限,然后将其设置为x和y坐标。我特别没有声明x和y变量。

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 
        Dim more As New Form1
        Dim upperLimit As Integer
        Dim lowerLimit As Integer
        lowerLimit = 1
        upperLimit = 999
        x = Int ((upperLimit - lowerLimit + 1) * Rnd + lowerLimit)
        y = Int ((upperLimit - lowerLimit + 1) * Rnd + lowerLimit)
        more.Location = New Point(x, y)
        more.Show()
        time = 10
End Sub

答案 1 :(得分:0)

这种方式更容易

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
    Dim more As New Form1
    Dim rn As New Random
    more.Location = New Point(rn.Next(0, 999), rn.Next(0, 999))
    more.Show()
    time = 10
End Sub

这是可以使用所有屏幕空间的代码

Dim rn As New Random
Dim mxw As Integer = My.Computer.Screen.Bounds.Width - Me.Width
Dim mxh As Integer = My.Computer.Screen.Bounds.Height - (Me.Height + 29 + 38)
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
    Dim more As New Form1
    more.Show()
    more.Location = New Point(rn.Next(0, mxw), rn.Next(0, mxh))
    time = 10
End Sub

好的,我不会真正了解new随机数的含义,所以如果这不能解决你的问题,请更好地解释一下。