[vb] combobox onChange / Click op een propertyPaga

Pagina: 1
Acties:

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 12:33
Ik ben bezig met een ActiveX component in Visual Basic. Daarbij heb ik ook een property page gemaakt. Daarop staat oa. een combobox. Ik heb al uit de search begrepen dat onChange alleen wordt aan geroepen wanneer er in de combobox wordt getypt en niet wanneer er simpel met de muis een item wordt gekozen. (irri).
Opzich werkt het wel door mijn code (changed = True) bij onClick te zetten, maar het gekke is dat de 'Apply' knop dat altijd enabled is.

Ik klik op de combobox en kies een item -> onClick event -> apply wordt enabled.
Dan klik ik apply. Dan wordt de 'apply' knop normaal weer disabled, maar onClick event van combobox wordt aangeroepen en 'apply' button is weer enabled, terwijl er geen wijzigingen gedaan zijn.

Is dit een bekend probleem en is er een oplossing voor?

edit:
code:
1
2
3
4
5
Private Sub cmb_Click()
    If (TypeOf ActiveControl Is ComboBox) Then
      Changed = True
    End If
End Sub

Dit pikt ie niet, dan krijg ik bij het tonen van de propertyPage de melding:
Runtime error '91'
Object variable or With block variable not set.

Verwijderd

1. waarom die typeof als je toch al op die combo klikt?
2. het is PropertyChanged

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 12:33
1. Dat had ik geprobeerd omdat op het moment dat ik dus op de apply knop (command dus) druk het event onClick van de combobox uitgevoerd wordt.

2. Nee propertyChanged is hier niet nodig. Changed = true is er alleen voor om de apply button op de propertyPage te enablen

  • Twilight Burn
  • Registratie: Juni 2000
  • Laatst online: 08-09 11:49
is Changed geen naam die je niet mag gebruiken als variabele naam, omdat het een eigenschap van iets (kan) zijn

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 12:33
Nee dat is het niet:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbprochangedproperty.asp
The Changed property should be set to True, for example, when a user changes a property value on a property page. Setting the Changed property to True would notify the property page to make available the Apply button

  • Twilight Burn
  • Registratie: Juni 2000
  • Laatst online: 08-09 11:49
Op donderdag 15 november 2001 14:23 schreef Tim Schuhmacher het volgende:
Nee dat is het niet:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbprochangedproperty.asp
[..]
moet het dan niet Me.Changed = true zijn omdat het een property is?

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 12:33
Nee - zo staat het niet in het boek, niet bij die link en het werkt wel goed.

Het zit hem in het feit dat als ik op de 'apply' knop druk het onClick event van de comboBox wordt uitgevoerd.

Bij het drukken op de knop worden de wijzigingen doorgevoerd, en wordt de knop gedisabled, maar omdat om een duistere reden die onClick van de combobox wordt uitgevoerd, wordt de apply knop weer enabled.
Dit is niet de bedoeling, want op die manier lijkt het alsof er weer wijziging zijn gedaan.
Pagina: 1