Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 使用计时器生成特定的随机生成代码_Vb.net - Fatal编程技术网

Vb.net 使用计时器生成特定的随机生成代码

Vb.net 使用计时器生成特定的随机生成代码,vb.net,Vb.net,我想使随机生成的代码时,计时器完成 但是我想使用这个代码abcdefghijklomnopqrstuvwxyz012456789 此格式为XXXX-XXXX-XXXX(用随机生成的数字/字母替换X) 我想在这里插入代码 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick ProgressBar1.Increment(3) If ProgressBar1.Value = 100

我想使随机生成的代码时,计时器完成

但是我想使用这个代码
abcdefghijklomnopqrstuvwxyz012456789

此格式为XXXX-XXXX-XXXX(用随机生成的数字/字母替换X)

我想在这里插入代码

 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    ProgressBar1.Increment(3)
    If ProgressBar1.Value = 100 Then
        TextBox1.Text = "replace textbox by code"
        Timer1.Stop()
    End If
End Sub

这里有一个使用LINQ的解决方案

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    ProgressBar1.Increment(3)
    If ProgressBar1.Value = 100 Then
        Dim chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
        Dim random = New Random()
        Dim num1 = New String(Enumerable.Repeat(chars, 4).Select(Function(s) s(random.Next(s.Length))).ToArray())
        Dim num2 = New String(Enumerable.Repeat(chars, 4).Select(Function(s) s(random.Next(s.Length))).ToArray())
        Dim num3 = New String(Enumerable.Repeat(chars, 4).Select(Function(s) s(random.Next(s.Length))).ToArray())
        Dim result = num1 & "-" & num2 & "-" & num3
        TextBox1.Text = result
        Timer1.Stop()
    End If
End Sub

这样,您只需将
TextBox1.Text=
更改为指向
getNewRandomString()
函数

Private Function getNewRandomString() As String
    Dim sb As New StringBuilder
    For i = 1 To 3
        For j = 1 To 4
            sb.Append(getNewRandomLetter())
        Next
        sb.Append("-")
    Next
    Return sb.ToString.Trim("-")
End Function

Private Function getNewRandomLetter() As Char
    Dim chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    Return (chars(GetRandom(0, chars.Length - 1)))
End Function

Public Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer
    Static Generator As System.Random = New System.Random()
    Return Generator.Next(Min, Max + 1)
End Function

那么,你有什么问题?如果你是VB和VB.NET的高手,我强烈建议你学习C#,而不是VB.NET。它比VB.NET流行得多;您将在C#中找到更多的示例代码,并能够在自己的代码中获得更多帮助。编辑:你关于成为noob的评论已经被编辑掉了。它需要多随机?(另外,您的字符列表中还有一个额外的
O
)随机性足够强,很少有相同的代码,感谢您指出我的错误。您如何将代码输入到文本框中?因此,当计时器完成时,随机生成的代码将显示在“只读”文本框中