Как сделать группу контролов членами коллекции другого контрола? - Visual Basic .NET
Формулировка задачи:
Всем здравствуйте.
На форме есть группа Label с различными именами и PictureBox. Задача сделать все Label членами коллекции PictureВox.
Если сделать так, то всё работает как надо
Но это громоздко.
А вот если сделать так, то часть меток не становится членами коллекции PictureBox. Почему?
SetParent.rar
Листинг программы
- Private Sub frmParam_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- lblHour.Parent = PictureBox1
- lblTP1.Parent = PictureBox1
- lblTO1.Parent = PictureBox1
- lblPP1.Parent = PictureBox1
- lblPO1.Parent = PictureBox1
- lblGP1.Parent = PictureBox1
- lblGO1.Parent = PictureBox1
- lblTP2.Parent = PictureBox1
- lblTO2.Parent = PictureBox1
- lblPP2.Parent = PictureBox1
- lblPO2.Parent = PictureBox1
- lblGP2.Parent = PictureBox1
- lblGO2.Parent = PictureBox1
- lblTP3.Parent = PictureBox1
- lblTO3.Parent = PictureBox1
- lblPP3.Parent = PictureBox1
- lblPO3.Parent = PictureBox1
- lblGP3.Parent = PictureBox1
- lblGO3.Parent = PictureBox1
- lblGPS.Parent = PictureBox1
- lblGOS.Parent = PictureBox1
- lblGPP.Parent = PictureBox1
- lblPW.Parent = PictureBox1
- lblGWS.Parent = PictureBox1
- lblHB1.Parent = PictureBox1
- lblHB4.Parent = PictureBox1
- For Each lbl As Control In PictureBox1.Controls
- If TypeOf lbl Is Label Then
- lbl.BackColor = Color.Green
- End If
- Next
Листинг программы
- Private Sub frmParam_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- For Each lbl As Control In Me.Controls
- If TypeOf lbl Is Label Then
- lbl.Parent = PictureBox1
- End If
- Next
- For Each lbl As Control In PictureBox1.Controls
- If TypeOf lbl Is Label Then
- lbl.BackColor = Color.Green
- End If
- Next
Решение задачи: «Как сделать группу контролов членами коллекции другого контрола?»
textual
Листинг программы
- Dim LabList As New List(Of Label) ' список Label формы
- For Each lbl As Control In Me.Controls
- If TypeOf lbl Is Label Then LabList.Add(CType(lbl, Label))
- Next
- LabList.ForEach(Sub(L As Label) L.Parent = PictureBox1)
- For Each lbl As Control In PictureBox1.Controls
- If TypeOf lbl Is Label Then
- lbl.BackColor = Color.Green
- End If
- Next
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д