Ga naar inhoud

Waarom kan dit niet?


anoniem

Aanbevolen berichten

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
Link naar reactie
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
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...