[VB.NET]If Combobox = leeg

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Nog maar net begonnen met programmeren in visual studio.

Eigenlijk een simpel vraagje i.v.m een combobox.
Ik wil dus als er in de combobox nog geen items ingeladen zijn dat de combobox gedisabled is en wanneer er wel items ingeladen zijn dat die enabled is.

If cboProvincies "hier moet dus de code komen die zegt dat de combobox leeg is"
Then cboProvincies.Enabled = False
Else cboProvincies.Enabled = True
End If

Ik had gedacht aan If cboProvincies.Items is Nothing ofzo maar dat werkt niet alleszins.

Is er eigenlijk een manier om op zo'n kleine vraagjes antwoorden te vinden zonder het telkens te gaan vragen op fora e.d? Of zijn er goede forums (buiten dit uiteraard :p) waar ze op zo'n vragen ook antwoord geven?

Verwijderd

Bestaat er niet iets als .Items.Count?

Verwijderd

Topicstarter
If cboProvincies.Items.Count = 0
werkt inderdaad. Bedankt! :p

  • BvDorp
  • Registratie: Januari 2004
  • Laatst online: 14-09 16:39
Je kunt een paar dingen doen:
- combobox class zelf schrijven en ergens iets afvangen en zorgen dat gedisabled blijft zolang items.count = 0
- procedure in programma bouwen dat checkt of items zijn, en anders disabled / items -> enabled
- event van combobox afvangen, bijvoorbeeld iets van DataSourceChanged, en op basis daarvan disable/enable doen

Probeer ze allemaal eens. Met het afvangen van events zul je even moeten oefenen, omdat je vaak niet weet wanneer precies welk event 'afgevuurd' wordt. Je vangt een event als volgt:

code:
1
Private sub VangEventComboBox(byval sender as object, e as eventargs) handles ComboBox.[event]


Check eigenschappen combobox: op MSDN.

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Verwijderd schreef op donderdag 25 november 2010 @ 20:01:
If cboProvincies "hier moet dus de code komen die zegt dat de combobox leeg is"
Then cboProvincies.Enabled = False
Else cboProvincies.Enabled = True
End If
Dit is een antipattern (if a then b=true else b=false). Beter is gewoon:
Visual Basic .NET:
1
            cboProvincies.Enabled = cboProvincies.Items.Count > 0

offtopic:
Even afgezien van mijn aversie tegen hungarian notation :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • BvDorp
  • Registratie: Januari 2004
  • Laatst online: 14-09 16:39
pedorus schreef op donderdag 25 november 2010 @ 20:13:
[...]

Dit is een antipattern (if a then b=true else b=false). Beter is gewoon:
C#:
1
            cboProvincies.Enabled = cboProvincies.Items.Count > 0;

offtopic:
Even afgezien van mijn aversie tegen hungarian notation :p
Het gaat om VB.Net, weer net een berg anders dan C#.

EDIT: oeps 8)7

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

BvDorp schreef op donderdag 25 november 2010 @ 20:15:
[...]

Het gaat om VB.Net, weer net een berg anders dan C#.

EDIT: oeps 8)7
Als je de puntkomma weghaalt zal het werken hoor :P

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...

Pagina: 1