Jag skapar lebels när jag klickar på en bild enligt svaret på frågan "skapa labels". Nu vill jag att något skal hända när jag klickar på en på detta sätt skapad label. Olika saker skall hända för olika labels. Hur vat jag vad "lablarana" heter när jag skall skapa en subrutin för händelsen Click? sätt lbl.tag propertyn till ngt mämpligt så kan du läsa av den sedan .. Hej När jag skapar en ny label på detta viset lagrar jag dess x och y samt data om punkten i Access. När programmet startas så hämtar det alla värden för alla lablar som redan är utplacerade och placerar dom igen på bilden. Jag kan inte förstå hur en subrutin skall se ut som till exempel i en msgbox visar tillhörade data till punkten genom att sätta ett värde på Tag. Hejsan. Har gjort ett helt litet exempel som jag skickat till filarean. Självklart är det ju enklare i ditt fall att använda en kontroll array. Jag har tittat på ditt exempel och sett att den lilla kodsekvensen du skrev i forumet som börjar med Set NewLabel.... Lägg till en label i din PictureBox och Sätt dess index egenskap till 0. Du har nu skapat en kontroll array. Är inte svårare än så. :O)mer om skapa labels
Sv: mer om skapa labels
Sv: mer om skapa labels
Som Patrik skriver
Sätt ett unikt Label Id i varje Labels Tag propertie
Då kan du identifiera just den label du klickar på
genom att läsa dess Tag
mvh
SvenSv: mer om skapa labels
Det borde vara en form av array man gör som i ett tidigare svar i detta ämne.
Load Label(Index)
Då borde jag kunna skriva
Private Sub Label(Index)_Click
Jag får inte till en sådan array. Hur dimensionerar man arrayen och hur skapas den?Sv: mer om skapa labels
http://www.pellesoft.nu/login/upload/t_view4.asp?tid=52
Tar upp hur man hanterar events från kontroller skapade med Controlls.Add. Krävs nog att du är insatt i hur classer fungerar. Den teknik jag använder lämpar sig oxå för vb.Net där kontrollarrayer inte stödjs(Vet inte om det införts i beta2 men tror inte det). Där man är tvungen att göra på ett liknande sätt.
/Mvh, Andreas HillqvistSv: mer om skapa labels
är skriven i en klass. Jag är inte kunnig i detta så jag måste fråga varför du skrivit koden där?
Det verkar som sagt att en controll array är bättre för mig. Jag undrar då hur jag deklarerar en dynamisk array och hur då kodsnutten ser ut som skapar en labelarray.Sv: mer om skapa labels
Det är lämpligt att sätta följande egenskaper för den. Efter som alla nya kontroller "ärver" dessa egenskaper så slipper du sätta dem när du laddar element i kontrollarrayen:
Alignment = 2 'Center
Autosize = True
Backstyle = 0 ' Transparent
Caption = ""
Visible = False
Klistra in följande kod i formuläret:
Option Explicit
Private Sub Label1_Click(Index As Integer)
Dim ClickLabel As Label
Set ClickLabel = Label1(Index)
MsgBox "Du klickade på " & ClickLabel.Caption
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim NewLabel As Label
Set NewLabel = Label1(Label1.UBound + 1)
Load NewLabel 'Denna rad är det som skapar kontrollen på formuläret
NewLabel.Caption = "Label: " & NewLabel.Index
NewLabel.Move X - (NewLabel.Width / 2), Y - (NewLabel.Height / 2)
NewLabel.Visible = True
End Sub