Получение случайного целого числа
Используйте класс Случайный вместо функции Rnd для получить случайный Integer
в пределах указанного диапазона в методе Random.Next(Int32, Int32)
. Объявите переменную класса типа Random
:
Private ReadOnly rand As New Random
Поиск диапазона элементов управления
Этот фрагмент кода повторяется Controls
коллекция контейнера возвращает - если таковые имеются - Label
контролирует, где их имена равны диапазону имен, начинается с label1
до label16
, и, наконец, присваивает случайный Integer
их Text
properties:
Private Sub TheCaller()
For Each lbl In Controls.OfType(Of Label).
Where(Function(x) Enumerable.Range(1, 16).
Any(Function(y) x.Name.ToLower.Equals($"label{y}")))
lbl.Text = rand.Next(1, 100).ToString
Next
End Sub
На всякий случай, если элементы управления Label
размещены в разных контейнерах, вам нужна рекурсивная функция для их получения:
Private Function GetAllControls(Of T)(container As Control) As IEnumerable(Of T)
Dim controls = container.Controls.Cast(Of Control)
Return controls.SelectMany(Function(x) GetAllControls(Of T)(x)).
Concat(controls.OfType(Of T))
End Function
И Назовите это следующим образом:
Private Sub TheCaller()
For Each lbl In GetAllControls(Of Label)(Me).
Where(Function(x) Enumerable.Range(1, 16).
Any(Function(y) x.Name.ToLower.Equals($"label{y}")))
lbl.Text = rand.Next(1, 100).ToString
Next
End Sub