Jag sitter och pysslar med ett program som vid ett tillfälle skapar några objekt på en vanlig form. Det handlar om väldigt enkla objekt, som några labels och lite knappar. Men de kan inte skapas i design mode, för de är olika i antal beroende på andra faktorer i programmet, osv. Kolla i [namnet på din form].controls, där finns säkert någon metod för att hitta kontroller. Ja! förstås! Hur kunde jag missa det?Hitta objekt som skapats i kod
Jag har skapat en funktion som lägger till objekt, och jag har också lyckats ge den en handle som reagerar på t.ex. clickning så här: (allt fungerar fint)
Private WithEvents mylabel As Label = New Label()
Public Sub addLabel(Optional ByVal Text As String = "", Optional ByVal Name As String = "Label", Optional ByVal X As Integer = 0, Optional ByVal Y As Integer = 0, Optional ByVal Font As Font = Nothing)
Dim newLabel As New Windows.Forms.Label()
newLabel.Text = Text
newLabel.AutoSize = True
newLabel.Location = New System.Drawing.Point(X, Y)
newLabel.Size = New System.Drawing.Size(40, 20)
newLabel.Font = Font
newLabel.Name = Name
If Not URL = Nothing Then newLabel.Cursor = Cursors.Hand
wIPML.Controls.Add(newLabel)
AddHandler newLabel.Click, AddressOf mylabel_Click
End Sub
Private Sub mylabel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mylabel.Click
Dim cName As String = CType(sender, Label).Name
MsgBox("Jaa! Du klickade på texten: " & cName)
End Sub
Allting fungerar bra! Men om jag i koden vill få reda på något av en av de t.ex. fem stycken labels som är skapade? Hur i hela ska jag lyckas då?
Om jag t.ex. vill få reda på bredden av en specifik? Jag har gett alla objekten var sitt unikt "name". Men jag vet inte hur jag ska hitta den ändå?
Tack på förhand!
/Jonatan
Sv: Hitta objekt som skapats i kod
Alternativt har jag för mig att det finns nån Find-metod för formen.Sv:Hitta objekt som skapats i kod
Tack!
.controls har ju sökfunktion, eller om jag vet vad objektet har för namn eller index når jag det genom .controls.item()