方法名稱:next();功能描述:返回一個0~2147483647之間的整數
成都創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都做網站、成都網站制作、寧遠網絡推廣、重慶小程序開發、寧遠網絡營銷、寧遠企業策劃、寧遠品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創新互聯為所有大學生創業者提供寧遠建站搭建服務,24小時服務熱線:18980820575,官方網址:m.kartarina.com
方法名稱:next(i);功能描述:返回一個0~i之間的整數
方法名稱:next(i,j);功能描述:返回一個i~j之間的整數
方法名稱:Nextdouble();功能描述:返回一個0~1之間的隨機小數
================
使用方法:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim rand = New System.Random()
MsgBox(rand.next().ToString())
End Sub
==========================
產生N個不同數的話,我給你個我寫的VB的代碼,你稍微改下:
產生0-10的數:
Private Sub Command1_Click()
Randomize
Dim a(10) As Long
n = 10
For i = 0 To n
a(i) = Int(Rnd() * (n + 1))
For j = 0 To i - 1
If a(i) = a(j) Then
i = i - 1
Exit For
End If
Next
Next
For i = 0 To n
Print a(i)
Next
End Sub
先把所有電話名單放在一個List泛型集合中,取出一個就Remove掉一個,這樣就不會重復了。
幾等獎幾個按照你的需求來循環即可。
給文本框添加內容:TextBox1.Text = 字符串
換行用vbCrLf常量表示。
詳細的可以私信
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim oleDbConnection1 As OleDb.OleDbConnection
Dim oledbDataAdapter As OleDb.OleDbDataAdapter
Dim oledbData As DataSet = New DataSet
Dim strConnect As String = "Provider= OraOLEDB.Oracle;Data Source=888;User ID=888;Password=888;"
oleDbConnection1 = New System.Data.OleDb.OleDbConnection(strConnect)
Dim strSql As String
strSql = "select *" " from xx"
Dim oledbCommand As OleDb.OleDbCommand
oledbCommand.CommandText = strSql
oledbCommand.CommandType = CommandType.Text
oledbCommand.Connection = oleDbConnection1
oledbDataAdapter.SelectCommand = oledbCommand
oleDbConnection1.Open()
oledbDataAdapter.Fill(oledbData, "gy_bingrenxx")
oleDbConnection1.Close()
'在窗體上添加一個DataGridView控件,在這個位置加一句代碼
DataGridView1.DataSource = oledbDataAdapter.Tables("gy_bingrenxx")
End Sub
Public Sub Main()
Dim allLeft As New List(Of Integer)()
For i As Integer = 0 To 99
allLeft.Add(i + 1)
Next
Dim r As New Random()
Dim [next] As Integer
Dim level As String
For i As Integer = 0 To 5
[next] = r.[Next]() Mod allLeft.Count
If i 3 Then
level = "Third"
ElseIf i 5 Then
level = "Second"
Else
level = "First"
End If
Console.WriteLine(level " level prize is: " allLeft([next]).ToString())
allLeft.RemoveAt([next])
Next
End Sub
只要在代碼中使用隨機函數即可實現隨機抽取功能
一、vb隨機數生成的方法
vb隨機數生成函數是 Rnd[(number)],number 參數為可選項。在調用 Rnd 生成隨機數之前,先使用 Randomize 初始化隨機數生成器來產生種子,該生成器是根據系統計時器來產生種子的。
1、生成100以內的隨機數
Randomize
Int(Rnd() * 100)//生成 0 - 99 之間的隨機數
Int(Rnd() * 101)//生成 0 - 100 之間的隨機數
2、生成指定范圍隨機數
由于 vb 沒有提供直接生成指定范圍隨機數的函數,所以要把 Rnd 變通一下,方法如下:
Int((上限 - 下限 + 1) * Rnd + 下限);
把它封裝成可直接調用的函數如下:
Function GetRandom(under, over As Integer) As Integer
If under over Then
temp = under;
under = over;
over = temp;
End If
Randomize
GetRandom = Int((under - over + 1) * Rnd + over);
End Function
調用方法:
GetRandom(10, 100);//生成10到100的隨機數
二、vb.net生成隨機數的方法
1、方法:Random.Next(int minValue, int maxValue);
2、說明:
若 minValue 和 maxValue 都沒有提供,則生成一個 0 - 2147483647 之間的隨機數;
若 minValue 和 maxValue 只提供一個,則生成一個 0 - maxValue 之間的隨機數;
若 minValue 和 maxValue 兩個都提供,則生成一個 minValue - maxValue 之間的隨機數;
3、舉例
Dim ran = New System.Random()
ran.Next()//生成 0 - 2147483647 之間的隨機數
ran.Next(100)//生成 0 - 100 之間的隨機數
ran.Next(10, 100)//生成 10 - 100 之間的隨機數
Dim ran = New Random(DateTime.Now.Millisecond)//通過日期的微秒生成隨機數
vb6可以實現多線程,不過比較麻煩,vb.net完全支持多線程,請參見msdn.
至于vb6實現多線程請看CreateThread這個API函數.以下有詳細方案:
用VB寫多線程程序用到的第一個API函數是CreateThread,這個函數的聲明如下:
Private Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long)As Long
這個函數的返回值是線程的句柄,它的參數含義如下:
1.lpThreadAttributes:這個參數表明函數的返回句柄是否可被子進程繼承,如果可被繼承,則指向一個SECURITY_ATTRIBUTES的結構,否則設為vbnull。
2.dwStackSize:這個參數設置線程的堆棧大小。
3.lpStartAddress:這個參數指明這個線程函數的起始地址。
4.lpParameter:這個參數是傳給線程函數的參數。
5.dwCreationFlags:這個參數設置當線程創建時的初始狀態,掛起,運行等等。
6.lpThreadId:這個參數是待創建線程的ID號。
假設創建一個管理線程的類clsThreads,用類的一個公用函數Initialize來初始化線程,用ResumeThread和SuspendThread函數來激活線程,實現代碼如下:
Private Type udtThread
Handle As Long
Enabled As Boolean
End Type
Private uThread As udtThread
Private Const CREATE_SUSPENDED As Long = H4
Private Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
Private Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long
Private Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long
Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
Public Sub Initialize(ByVal lpfnBasFunc As Long) '初始化線程
Dim lStackSize As Long, lCreationFlags As Long, lpThreadId As Long, lNull As Long
On Error Resume Next
lNull = 0 '創建一個空指針
lStackSize = 0 '0表示用exe的stack size
lCreationFlags = CREATE_SUSPENDED '表示初始化后先不激活,讓別人來激活
uThread.Handle = CreateThread(lNull, lStackSize, lpfnBasFunc, lNull, lCreationFlags, lpThreadId)
If uThread.Handle = lNull Then MsgBox "Create thread failed!"
End Sub
Public Property Get Enabled() As Boolean
On Error Resume Next
Enabled = uThread.Enabled
End Property
Public Property Let Enabled(ByVal vNewValue As Boolean)
On Error Resume Next
If vNewValue And (Not uThread.Enabled) Then
ResumeThread uThread.Handle '激活線程
uThread.Enabled = True
ElseIf uThread.Enabled Then
SuspendThread uThread.Handle
uThread.Enabled = False
End If
End Property
Private Sub Class_Terminate() '終止線程
On Error Resume Next
Call TerminateThread(uThread.Handle, 0)
End Sub
以上內容在類模塊clsThreads中,有了它就可以在窗體中實現多線程了。下面以一個簡單的例子來說明如何創建多線程(以2個線程為例)。
在form1中添加picture1和picture2兩個圖片框,以及一個command1按鈕,在工程中添加一個bas模塊,該模塊的代碼如下:
Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Public Sub FlickerTop()
Static BgColor As Long
Dim lTick As Long, lCounter As Long
On Error Resume Next
For lCounter = 0 To 60000
BgColor = lCounter Mod 256
Form1.Picture1.BackColor = RGB(BgColor, 0, 0) '變化圖片框的顏色
lTick = GetTickCount
While GetTickCount - lTick 10 '延遲10個毫秒時間
Wend
Next
End Sub
Public Sub FlickerBottom()
Static BgColor As Long
Dim lTick As Long, lCounter As Long
On Error Resume Next
For lCounter = 0 To 60000
BgColor = lCounter Mod 256
Form1.Picture2.BackColor = RGB(0, BgColor, 0)
lTick = GetTickCount
While GetTickCount - lTick 10
Wend
Next
End Sub
最后在form1中用下面的代碼來創建兩個線程,
Option Explicit
Public myThreadTop As New clsThreads, myThreadBottom As New clsThreads
Private Sub Command1_Click()
On Error Resume Next
With myThreadTop
.Initialize AddressOf FlickerTop
.Enabled = True
End With
With myThreadBottom
.Initialize AddressOf FlickerBottom
.Enabled = True
End With
MsgBox "看看會有什么..."
Set myThreadTop = Nothing
Set myThreadBottom = Nothing
End Sub
網頁題目:vb.net抽獎程序,vb抽獎程序代碼
文章路徑:http://m.kartarina.com/article48/heipep.html
成都網站建設公司_創新互聯,為您提供虛擬主機、電子商務、微信公眾號、做網站、全網營銷推廣、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯