sVB-Small-Visual-Basic icon indicating copy to clipboard operation
sVB-Small-Visual-Basic copied to clipboard

Labels could not be removed from the form due to their names.

Open dynamicboy opened this issue 1 year ago • 1 comments

I am creating an application to split long images. I add labels through code to display the sub-images. When I choose another long image, these labels need to be removed from the form. I attempted to remove them using the Me.RemoveControl(nameOfLbl) function, but I failed.

Version:2.8.8.1 Details: Demo code as below:

For I = 1 To 3
   Name = "Label" + I
   Lbl = Me.AddLabel(Name, 0, I * 50, 50, 30)
   Lbl.BackColor = Colors.YellowGreen
Next

For I = 1 To 3
   Name = "Label" + I
   Me.RemoveControl(Name)
Next


For I = 1 To 4
   Name = "Label" + I
   Lbl = Me.AddLabel(Name, 0, I * 50, 50, 30)
   Lbl.BackColor = Colors.YellowGreen
Next

Running the form will result in an error. Screenshot: 2024-01-08_201108

However, when I change the label name prefix to "lbl":

For I = 1 To 3
   Name = "lbl" + I
   Lbl = Me.AddLabel(Name, 0, I * 50, 50, 30)
   Lbl.BackColor = Colors.YellowGreen
Next

For I = 1 To 3
   Name = "lbl" + I
   Me.RemoveControl(Name)
Next


For I = 1 To 4
   Name = "lbl" + I
   Lbl = Me.AddLabel(Name, 0, I * 50, 50, 30)
   Lbl.BackColor = Colors.YellowGreen
Next

Then, when I run the form, the four labels are displayed correctly. 2024-01-08_201510

I tried to change the name prefix to "lblS" or "lblSubImage", but I always encounter an error indicating that there is a label with the same name. It's really weird.

dynamicboy avatar Jan 08 '24 12:01 dynamicboy

The key of any control consists of the formNme.ControlName. This key is returned for you by the Form.AddXX method. If you want to remove the control, send this key to the Remove method, so you should save labels to an array: labels= [] for ....

Lbl = Me.AddLabel(

labels[i] = lbl Next and use labels[i] in the removal loop. or avoid all of this this and let sVB do the work for you:

C = Me.Controls For I = C.Count To 1 Step -1 Control1 = C[I] If Control1.TypeName = ControlTypes.Label Then Me.RemoveControl(Control1) EndIf Next


From: dynamicboy @.> Sent: Monday, January 8, 2024 12:20 PM To: VBAndCs/sVB-Small-Visual-Basic @.> Cc: Subscribed @.***> Subject: [VBAndCs/sVB-Small-Visual-Basic] Labels could not be removed from the form due to their names. (Issue #47)

I am creating an application to split long images. I add labels through code to display the sub-images. When I choose another long image, these labels need to be removed from the form. I attempted to remove them using the Me.RemoveControl(nameOfLbl) function, but I failed.

Version:2.8.8.1 Details: Demo code as below:

For I = 1 To 3 Name = "Label" + I Lbl = Me.AddLabel(Name, 0, I * 50, 50, 30) Lbl.BackColor = Colors.YellowGreen Next

For I = 1 To 3 Name = "Label" + I Me.RemoveControl(Name) Next

For I = 1 To 4 Name = "Label" + I Lbl = Me.AddLabel(Name, 0, I * 50, 50, 30) Lbl.BackColor = Colors.YellowGreen Next

Running the form will result in an error. Screenshot: 2024-01-08_201108.png (view on web)https://github.com/VBAndCs/sVB-Small-Visual-Basic/assets/7421525/b34b5853-6918-4b6d-a270-6734a6a3ad88

However, when I change the label name prefix to "lbl":

For I = 1 To 3 Name = "lbl" + I Lbl = Me.AddLabel(Name, 0, I * 50, 50, 30) Lbl.BackColor = Colors.YellowGreen Next

For I = 1 To 3 Name = "lbl" + I Me.RemoveControl(Name) Next

For I = 1 To 4 Name = "lbl" + I Lbl = Me.AddLabel(Name, 0, I * 50, 50, 30) Lbl.BackColor = Colors.YellowGreen Next

Then, when I run the form, the four labels are displayed correctly. 2024-01-08_201510.png (view on web)https://github.com/VBAndCs/sVB-Small-Visual-Basic/assets/7421525/4ba559db-fabb-4821-97a2-1afeee7c8069

I tried to change the name prefix to "lblS" or "lblSubImage", but I always encounter an error indicating that there is a label with the same name. It's really weird.

— Reply to this email directly, view it on GitHubhttps://github.com/VBAndCs/sVB-Small-Visual-Basic/issues/47, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALQ5MVXFT36M5RQDZWRE633YNPP77AVCNFSM6AAAAABBRLQH5KVHI2DSMVQWIX3LMV43ASLTON2WKOZSGA3TAMZTHA2DQNI. You are receiving this because you are subscribed to this thread.Message ID: @.***>

[https://s-install.avcdn.net/ipm/preview/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif]https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail Virus-free.www.avast.comhttps://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail

VBAndCs avatar Jan 08 '24 17:01 VBAndCs