На самом деле, я бы все сделал в дизайнере. Сначала настраиваешь один Label, копируешь его в буфер, вставляешь, меняешь надпись и название, а оформление остаётся.
Периодически такой код использую:
- Код: Выделить всё
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
CorrectTextBoxes(Me)
End Sub
Private Sub CorrectTextBoxes(Base As Control)
If Base.Controls IsNot Nothing Then
For Each Ctrl As Control In Base.Controls
CorrectTextBoxes(Ctrl)
Dim Txt As TextBox = TryCast(Ctrl, TextBox)
If Txt IsNot Nothing Then
AddHandler Txt.KeyDown, AddressOf Txt_KeyDown
End If
Next Ctrl
End If
End Sub
Private Sub Txt_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.A And e.Control Then CType(sender, TextBox).SelectAll()
End Sub
Возможно, в данной ситуации аналогичный код тоже подойдёт.
Создавать контролы из кода в большинстве случаев не нужно.
Admiralisimys писал(а):ведь родителем (lb.Parent = Me) не обязательно должна быть форма
Me - это текущий класс. Значит либо форма, либо некий контрол, который ты сейчас создаёшь. А даже если поменять на что-то выравнивающее элементы, типа FlowLayoutPanel, то зачем там 5 лейблов подряд?