Toon posts:

[VB.NET] Vervanger voor Index

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben nu overgestapt van Visual Basic 6.0 naar Visual Basic 2005.NET. Ik kom er alleen nu achter dat je bij een object(bijvoorbeeld CheckBox) geen index mee kunt geven. bijvoorbeeld: CheckBox(5) voor de Checkbox met het index 5.
Is hier een vervanger voor? Dit omdat ik in een programma 140 checkboxen heb en ik niet 140 keer dezelfde code wil typen.

Iemand een idee?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Kun je niet met de Items van het container-object werken, en daar doorheen loopen gebruik makend van de ItemIndex? Ik ken VB.NET niet, maar zo zou ik het in andere talen doen. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Verwijderd schreef op zondag 04 december 2005 @ 17:42:
Is hier een vervanger voor? Dit omdat ik in een programma 140 checkboxen heb en ik niet 140 keer dezelfde code wil typen.

Iemand een idee?
Er is (dacht ik) geen vervanger voor de array-controls in VB.Net.
Maar als je een procedure door meerdere controls/events wil laten gebruiken, dan kan je toch gewoon de 'handles' uitbreiden?

Zoiets:
code:
1
Private Sub MijnSub(sender As Object, e As EventArgs) Handles Checkbox1.Click, Checkbox2.Click, etc.

Verwijderd

Topicstarter
Het gaat er bij mij om dat ik snel de waardes van de checkboxen kan uitlezen. Eerst kon dat met een for lusje.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je hebt toch een CheckboxList object waar weer Checkboxen inzitten. Doormiddel van de Items property kan je deze weer opvragen.

Ongeveer zo
C#:
1
2
3
4
foreach( Checbox c in myCheckboxList.Items )
{
    //Do something with c
}

[ Voor 31% gewijzigd door Woy op 04-12-2005 21:28 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 16-04 11:36

pjvandesande

GC.Collect(head);

Met een for lusje kan gewoon:

C#:
1
2
3
4
5
6
7
8
foreach(Control control in Controls)
{
     if(control is CheckBox)
     {
          CheckBox foundBox = (CheckBox)control;
          // Do iets met de checkbox.
     }
}


En het CheckChanged even kun je ook gewoon afvangen, je kunt dan de sender casten naar een CheckBox. Je sender bevat namelijk de control die het event heeft afgevuurd.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
questa schreef op maandag 05 december 2005 @ 08:53:
Met een for lusje kan gewoon:

C#:
1
2
3
4
5
6
7
8
foreach(Control control in Controls)
{
     if(control is CheckBox)
     {
          CheckBox foundBox = (CheckBox)control;
          // Do iets met de checkbox.
     }
}


En het CheckChanged even kun je ook gewoon afvangen, je kunt dan de sender casten naar een CheckBox. Je sender bevat namelijk de control die het event heeft afgevuurd.
Of je kan zelf gewoon een array met je checkboxes opbouwen bij het laden van je programma

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Vedett.
  • Registratie: November 2005
  • Laatst online: 21:42
zet gewoon een reference naar elke checkbock in een array

pseudocode c#

CheckBox[] mycheckboxes = new CheckBox[2]

myckechboxes[0] = chkCheckBoxOpForm1;
mycheckboxes[1] = chkCheckBoxOpForm2;


Vervolgens kun je eenvoudig loopen en met een indexer benaderen

mycheckboxes[0].Checked = false;

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Als je in de toolbox componenten toevoegd (in 2005 Choose Items..., in 2003 Add Components...) kan je verschillende Arrays toevoegen voor bepaalde Controls (ButtonArray, CheckBoxArray, etc.).
Het is alleen niet aan te raden om te gebruiken, heb ik ergens eens gelezen in een Microsoft-artikel (daarom zijn ze ook niet standaard toegevoegd).

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
MrSleeves schreef op dinsdag 06 december 2005 @ 10:56:
Als je in de toolbox componenten toevoegd (in 2005 Choose Items..., in 2003 Add Components...) kan je verschillende Arrays toevoegen voor bepaalde Controls (ButtonArray, CheckBoxArray, etc.).
Het is alleen niet aan te raden om te gebruiken, heb ik ergens eens gelezen in een Microsoft-artikel (daarom zijn ze ook niet standaard toegevoegd).
Ik zie eigenlijk ook geen reden om dat te willen gebruiken.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

rwb schreef op dinsdag 06 december 2005 @ 12:40:
[...]

Ik zie eigenlijk ook geen reden om dat te willen gebruiken.
Ik ook niet.. :)
Maar het kan dus wel.

30Drie Web Design & IT Consultancy | Raven Consultancy Services

Pagina: 1