anoniem Geplaatst: 18 november 2004 Delen Geplaatst: 18 november 2004 Ik heb 3 Textboxen. txtBedrag(0), txtBedrag(1) en txtTarief. Ik heb in een classmodule wat events beschreven om van een Textbox te eisen dat alleen valuta's kunnen worden ingevuld. Dit lukt niet bij txtBedrag(array), maar dit is juist de bedoeling. [code:1:4ec56a3c73]Dim myClass As New CurrencyBoxClass Private Sub Form_Load() Set myClass.CurrencyBox = txtBedrag(0) 'lukt niet Set myClass.CurrencyBox = txtTarief 'lukt wel End Sub[/code:1:4ec56a3c73] bedankt, Rob Quote Link naar reactie
anoniem Geplaatst: 18 november 2004 Auteur Delen Geplaatst: 18 november 2004 dit ljikt mij soort van vb, naar mijn idee moet er nog een option bij. Ik denk zo: Set myClass.CurrencyBox = txtBedrag(0).text Quote Link naar reactie
anoniem Geplaatst: 18 november 2004 Auteur Delen Geplaatst: 18 november 2004 Sorry! Ik heb het inderdaad over Visual Basic (versie 6) Nee, Arno, denk het niet want txtTarief (geen array) lukt wel. De vraag is of het met control-arrays ook kan. Bedankt voor je suggestie in ieder geval. Rob Quote Link naar reactie
anoniem Geplaatst: 18 november 2004 Auteur Delen Geplaatst: 18 november 2004 haal die 'set' eens weg? (voor de variabeledeclaraties) Quote Link naar reactie
anoniem Geplaatst: 18 november 2004 Auteur Delen Geplaatst: 18 november 2004 Dit maakt geen verschil. Ik krijg steeds de melding Run-time error '459' "Object or class does not support the set of events." ALLEEN dus bij txtBedrag(0). txtTarief werkt wel. Quote Link naar reactie
anoniem Geplaatst: 18 november 2004 Auteur Delen Geplaatst: 18 november 2004 en wat als je eerst doet a=ding(0) andereding=a ? (ik weet ff de variabelenamen niet meer :P) Quote Link naar reactie
anoniem Geplaatst: 18 november 2004 Auteur Delen Geplaatst: 18 november 2004 je bedoelt: [code:1:f49705dd27]Dim myClass As New CurrencyBoxClass Dim TB As TextBox Private Sub Form_Load() Set TB = txtBedrag(0) Set myClass.CurrencyBox = TB End Sub[/code:1:f49705dd27] Dat geeft hetzelfde probleem ROB Quote Link naar reactie
anoniem Geplaatst: 19 november 2004 Auteur Delen Geplaatst: 19 november 2004 Uit de MSDN Library: [quote:d101c26b78]Not every component supports client sinking of events. This error has the following cause and solution: You tried to use a WithEvents variable with a component that can't work as an event source for the specified set of events. For example, you may be sinking events of an object, then create another object that Implements the first object. Although you might think you could sink the events from the implemented object, that isn't automatically the case. Implements only implements an interface for methods and properties. You can't sink events for a component that doesn't source events. WithEvents isn't supported for Private UserControls, because the type-info needed to raise the ObjectEvent isn't available at runtime. [/quote:d101c26b78] Op de manier waarop jij het wil doen, gaat het dus niet lukken. Wat wel kan is het op deze manier doen: Verander de class CurrencyBoxClass als volgt: [code:1:d101c26b78] Private chkText As String Public Event OnChange(ByVal CheckThis As String) Private Sub Change(ByVal CheckThis As String) RaiseEvent OnChange(CheckThis) End Sub Public Property Get Text() As String Text = chkText End Property Public Property Let Text(ByVal CheckThis As String) chkText = CheckThis Call Change(chkText) End Property ' En nog andere code [/code:1:d101c26b78] En in het formulier: [code:1:d101c26b78] Private WithEvents objBox As CurrencyBoxClass Private Sub Form_Load() Set objBox = New CurrencyBoxClass End Sub Private Sub objBox_OnChange(ByVal CheckThis As String) If Not IsNumeric(CheckThis) Then MsgBox "Dit is geen numerieke waarde!" End If End Sub Private Sub txtBedrag_Change(Index As Integer) If txtBedrag(Index).Text <> "" Then objBox.Text = txtBedrag(Index) End If End Sub [/code:1:d101c26b78] Hoop dat dit helpt. Ik heb trouwens de voorbeeldcode [url=http://www.developer.com/net/vb/article.php/1430631]hier[/url] vandaan Quote Link naar reactie
anoniem Geplaatst: 19 november 2004 Auteur Delen Geplaatst: 19 november 2004 en, uh, kap met dat waardeloze 'set x=y', lekker om je code zo onleesbaar mogelijk te maken :/ Quote Link naar reactie
anoniem Geplaatst: 20 november 2004 Auteur Delen Geplaatst: 20 november 2004 waarom een class gebruiken? zet het in een module en het werkt.. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen