Toon posts:

[VB] For Each chk probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
De bedoeling :
Ik heb een formulier met een aantal tabs. Op iedere tab staat een checkbox waarmee je de tab kan in of uitschakelen. Ik wil nu de status van die checkbox'en bijhouden als het programma word afgesloten, dus in een bestand of register, dat maakt me niet zoveel uit.

Probleem :
Momenteel heb ik om te testen gewoon een leeg form genomen met 3 checkboxen op. (Niet in een array ofzo want dat dus niet de bedoeling met het oog op overgang naar .NET wil ik dat niet.) Deze code gebruik ik nu om gewoon de caption te veranderen :
code:
1
2
3
4
5
    Dim chk As CheckBox
    
    For Each chk In Form1
        chk.Caption = "Test"
    Next

Dat is dus makkelijk om te vormen naar de status enzo, maar op het moment dat ik een commandbutton op het formulier bijplaats werkt deze code NIET meer.

oplossing ?
Mijn vraag is simpel : Waar ligt het probleem, want ik zie het echt niet ...
als het al niet werk als ik 1 button heb, dan kan het ook niet werken als ik een volledig project heb en handmatig alle statussen gaan saven is ook niet echt een optie, als je dan uitbreid moet je daar ook weer aan gaan denken.

Verwijderd

Persoonlijk ken ik deze constructie helemaal niet, om zo alle checkboxen uit een formulier te halen.
De manier waarop ik werk is zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Dim cntControl As Control

    For Each cntControl In frmFormulier.Controls
        Select Case TypeName(cntControl)
        Case "CheckBox"
          'Doe iets voor de checkboxen
        Case "CommandButton"
          'Doe iets voor de commandbuttons
        Case Else
          'Doe niets ;-)
        End Select
    Next cntControl


Hopelijk heb je hier wat aan...

Verwijderd

Topicstarter
is idd voor een groot deel wt ik nodig had !
dat werkt al

nu nog een stapje moeilijker, zou het ook mogelijk zijn om bijvoorbeeld alleen maar de controls uit een bepaald frame te overlopen ?
bijvoorbeeld een frame met allemaal textboxen en dan alle textboxen leeg maken die in dat frame zitten ?

For Each cntControl In frmFormulier.frame1.Controls bestaat alvast niet.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 01-09 13:54

Crazy D

I think we should take a look.

Kijk eens naar de Parent property van de controls.

Exact expert nodig?


Verwijderd

Topicstarter
Ondertussen heb ik al dit :

met een groupbox, waarin een checkbox zit en nog eens 2 groupboxen.
Als ik de checkbox aanklik dan worden de volgende binnen de 2 groupboxen leeg gemaakt (labels en textboxen).

nu zou ik willen een functie hiervan maken, zodat ik dit makkelijker kan toepassen, maar ik vind geen manier om de naam van de groupbox waarin gewerkt moet worden door te geven

Ik werk dus wel in VB.NET, dat maakt een redelijk verschil uit denk uk.

bij
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged

moet ik dus een manier vinden om te achterhalen wat de naam van de checkbox is die aangeklikt werd.
Om zo bijvoorbeeld de functie "MaakLeeg(checkbox1.parent.name)" aan te roepen.
Dan weet de functie onmiddelijk in welk frame hij moet werken.

Iemand een idee hoe ik te weten kom binnen de sub wat de naam van de checkbox is ?

Verwijderd

Helaas heb ik geen VB.NET, maar als sender het object is wat de event triggert, dan zal waarschijnlijk sender.name ofzo toch moeten werken? (althans in VB6...)
Wellicht werkt sender.parent.name ook al meteen.
Pagina: 1