Toon posts:

[VB] Objecten aanmaken uit de VB verzameling

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil vanuit code een Label genereren en dat op het scherm laten zien. Uit de objectbrowser weet ik dat een Label zich in de verzameling VB objecten bevindt. Maar hoe instantieer ik zo'n object?
code:
1
2
3
Dim l As Label

Set l = New VB.Label

Of zoiets werkt niet. Ik heb verschillende plaatsen op Internet bezocht, ook MSDN, maar nog niet het antwoord op deze vraag. Sorry voor het noob-gehalte, maar weet iemand hier het antwoord?

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
code:
1
2
3
dim label1 as new Label

label1.caption = "Blaat"

Dit zou toch moeten werken

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 30-08 17:59

Gerco

Professional Newbie

Dit werkt prima, voor labels waarschijnlijk ook wel.
code:
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
    Dim t As TextBox
    
    Set t = Me.Controls.Add("VB.TextBox", "textbox", Me)
    
    t.Left = 10
    t.Top = 10
    t.Width = 500
    t.Height = 255
    t.Text = "test"
    t.Visible = True
End Sub

Syntax: Controls.Add(Class, Name, Parent?)

Wat je met die name moet weet ik ook niet, je kunt 'em er in code niet mee aanspreken omdat je dan een compile error krijgt, maar goed, zo werkt het iig wel.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter
Op maandag 22 juli 2002 14:32 schreef Gerco het volgende:
Dit werkt prima, voor labels waarschijnlijk ook wel.
code:
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
    Dim t As TextBox
    
    Set t = Me.Controls.Add("VB.TextBox", "textbox", Me)
    
    t.Left = 10
    t.Top = 10
    t.Width = 500
    t.Height = 255
    t.Text = "test"
    t.Visible = True
End Sub

Syntax: Controls.Add(Class, Name, Parent?)

Wat je met die name moet weet ik ook niet, je kunt 'em er in code niet mee aanspreken omdat je dan een compile error krijgt, maar goed, zo werkt het iig wel.
Relaxed :)
Tnx man!!

Verwijderd

Je kan natuurlijk ook een leeg label neerzetten op een formulier en die visible = false maken.
Wanneer je je label dan wilt laten zien dan kan je visible = true neerzetten en de caption aanpassen.
Wil je nu meerdere labels run-time laten zien dan kan je er een label array van maken en met 'load' kan je dan een nieuw label toevoegen.

Verwijderd

Topicstarter
Op maandag 22 juli 2002 14:54 schreef ErikvSon het volgende:
Je kan natuurlijk ook een leeg label neerzetten op een formulier en die visible = false maken.
Wanneer je je label dan wilt laten zien dan kan je visible = true neerzetten en de caption aanpassen.
Wil je nu meerdere labels run-time laten zien dan kan je er een label array van maken en met 'load' kan je dan een nieuw label toevoegen.
Dat klopt. Maar ik weet van te voren nog niet precies of er nu 1, 2 of 3 labels op het form moeten staan.

Verwijderd

Als je het niet weet dan zou ik je de array label methode aanraden.
Je zet een label (Label1) op een formulier. Zet de index van dat label op 0 (dan is het een array geworden "Label1(0))
als je dan een nieuw label wilt hebben dan doe je "Load Label1" en je krijgt een label1(1) erbij.
Dit kost minder resources dan er een control bij zetten en het werkt ook erg prettig. Zeker als je met textbox etc gaat werken en je hebt ook nog code nodig voor een control. Dan check je gewoon op index.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 30-08 17:59

Gerco

Professional Newbie

Op maandag 22 juli 2002 15:06 schreef ErikvSon het volgende:
Zeker als je met textbox etc gaat werken en je hebt ook nog code nodig voor een control. Dan check je gewoon op index.
code:
1
2
3
4
Private WithEvents t As Textbox

Private Sub t_KeyPress(KeyAscii As Integer)
End Sub

Dat kan natuurlijk ook met arrays.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!

Pagina: 1