은 같은 것입니다 :
For i = 0 to 5
Dim t As New PictureBox()
t.Name = "PictureBox" & i
Me.Controls.Add(t)
Next
Dim picToChange = From r in Me.Controls Where Typeof(r) Is PictureBox AndAlso r.Name = "PictureBox1" Select r
If picToChange IsNot Nothing AndAlso picToChange.Any Then
'Do Something
End If
이것은 매우 기본적인 예입니다 당신의 linq
아마 내가 사용하는 것보다 더 역동적이 될 것입니다하지만 당신은 얻을해야 생각. 이 경우 나는 당신이 폼에 PictureBoxes
을 넣고 있다고 가정하고 있는데, 그렇지 않다면 컨트롤을 추가하는 컬렉션을 통해 linq
을 사용해야 할 것입니다.
편집 # 1 :
는 지금까지 이벤트에 관한 한 수동 처리기를 추가해야합니다.
For i = 0 to 5
Dim t As New PictureBox()
t.Name = "PictureBox" & i
AddHandler t.Click, AddressOf(FunctionToHandleClick)
Me.Controls.Add(t)
Next
Dim picToChange = From r in Me.Controls Where Typeof(r) Is PictureBox AndAlso r.Name = "PictureBox1" Select r
If picToChange IsNot Nothing AndAlso picToChange.Any Then
'Do Something
End If
을 그리고 FunctionToHandleClick이과 같습니다 : 그래서 당신의 코드가 될 것
Private Sub FunctionToHandleClick(ByVal sender As Object, ByVal e As ClickEventArgs)
End Sub
가 왜 배열을 사용하지 않는? 'picturebox [3] = 새로운 PictureBox()'? – selkathguy
아마도 그들을 form.Controls에 추가하는 것이 좋습니다. 21 세기에 우리는 로봇 개와 비행용 자동차를 가지고 있으므로 구식 배열을 사용할 필요가 없으며 Controls 컬렉션 이외의 곳에 저장해야하는 경우 List (of PictureBox)를 사용하십시오. – Plutonix
@Plutonix FYI :'List'의 항목은 (구식)'Array '에 저장되어 있습니다. 게다가 나는 완전히 동의합니다;) –