Private btnHoriPos() As String = {"50", "100", "150", "200", "250"}
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
shuffleButtons()
End Sub
Private Sub shuffleButtons()
shuffle(btnHoriPos, 7)
For i As Int32 = 1 To 5
Dim btn As Button = DirectCast(FindControl(String.Concat("btn", i)), Button)
'set the button positions based on shuffle
btn.Attributes.Add("Style", String.Format("position:absolute; left:{0}px;", btnHoriPos(i - 1)))
'set the text to be correct again after move
fixButtonText(btn, btnHoriPos(i - 1))
Next
End Sub
Private Sub shuffle(ByRef arrayToBeShuffled As Array, ByVal numberOfTimesToShuffle As Integer)
Dim rndPosition As New Random(DateTime.Now.Millisecond)
For i As Integer = 1 To numberOfTimesToShuffle
For i2 As Integer = 1 To arrayToBeShuffled.Length
swap(arrayToBeShuffled(rndPosition.Next(0, arrayToBeShuffled.Length)), arrayToBeShuffled(rndPosition.Next(0, arrayToBeShuffled.Length)))
Next i2
Next i
End Sub
Private Sub swap(ByRef arg1 As Object, ByRef arg2 As Object)
Dim strTemp As String
strTemp = arg1
arg1 = arg2
arg2 = strTemp
End Sub
Private Sub fixButtonText(ByRef btn As Button, ByVal position As Int32)
'{"50", "100", "150", "200", "250"}
Select Case position
Case 50
btn.Text = "A"
Case 100
btn.Text = "B"
Case 150
btn.Text = "C"
Case 200
btn.Text = "D"
Case 250
btn.Text = "E"
End Select
End Sub