이 포럼과 다른 사이트에서 수 많은 샘플을 검색하여 보았습니다. 그러나 여전히이 문제에 봉착했습니다. 동적으로 생성 된 PictureBox-es에 클릭 핸들러를 추가하고 그림 상자 중 어느 것을 클릭했는지 알 수 있도록 인수를 전달하려고합니다. 여기 VB.NET에서 동적으로 생성 된 컨트롤에 이벤트 처리기를 추가하는 방법은 무엇입니까?
내 현재 코드입니다 : 그래서Public Class frmMbarimAbonimi
Private Sub frmMbarimAbonimi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'FitnessdbDataSet.clients' table. You can move, or remove it, as needed.
'Me.ClientsTableAdapter.Fill(Me.FitnessdbDataSet.clients)
'===============
Dim dt As DataTable = PaPaguar()
Dim i As Integer = 0
Dim gr(dt.Rows.Count) As GroupBox
Dim pp(dt.Rows.Count) As PictureBox
Dim lb(dt.Rows.Count) As Label
For Each row As DataRow In dt.Rows
gr(i) = New GroupBox
gr(i).Width = 200
gr(i).Height = 180
pp(i) = New PictureBox
pp(i).SizeMode = PictureBoxSizeMode.StretchImage
lb(i) = New Label
'-------------------------
Try
Using str As Stream = File.OpenRead("C:\Fotot\" + dt.Rows(i).Item("Foto"))
pp(i).Image = Image.FromStream(str)
End Using
lb(i).Text = dt.Rows(i).Item("Emer")
Catch ex As Exception
MsgBox("Fotoja nuk mund te ngarkohet, ju lutem realizoheni nje foto tjeter!!!")
End Try
'-------------------------
pp(i).Visible = True
pp(i).Width = 200
pp(i).Height = 150
AddHandler pp(i).Click, AddressOf testini
gr(i).Controls.Add(pp(i))
lb(i).Visible = True
lb(i).Width = 200
lb(i).Height = 30
lb(i).Left = pp(i).Left
lb(i).Top = pp(i).Top + 150
lb(i).BackColor = Color.WhiteSmoke
lb(i).BringToFront()
gr(i).Controls.Add(lb(i))
flpanel.Controls.Add(gr(i))
i = i + 1
Next row
End Sub
End Class
내가 AddHandler에 PP (I) .Click, AddressOf를 testini를 사용하려고했지만 분명이 저를 식별하는 매개 변수를 "testini"호출 할 수 없습니다 어느 그림 상자를 클릭 했습니까?
누군가 올바른 방향으로 나를 가르키거나 조언을 해줄 수 있습니까? 대단히 감사합니다.
당신은 이미 * sender * 인수입니다 그림 상자를 식별하는 매개 변수가 있습니다. –
나는이 "보낸 사람"을 최근에 매우 자주 보았지만 나는 나의 경우에 그것을 어떻게 사용할 수 있는지 알지 못한다. '코드' 공개 서브 testini (ByVal 보낸 사람, ByVal EventArgs) '여기에서 사용하는 방법? End Sub –
'sender'는 클릭 된'PictureBox'입니다. 'testini' 메쏘드에서,'Dim pbox As PictureBox = DirectCast (보낸 사람, PictureBox)'라고 말할 수 있으며, 사용자가 클릭 한 그림 상자로 사물을 변경합니다. – prprcupofcoffee