[vb.net] MustInherit/Abstract probleem met usercontrol

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 10-09 15:29

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
Hey mensen ik zit met een probleem waar ik op dit moment de ballen van snap.

korte situatie:
We hebben een hoofdform, met daarin een panel. In dit panel worden subforms geladen.
Elk subform is een UserControl die erft van SubForm_MasterControl.
Deze usercontrol is als MustInherit gedefineerd en bevat een aantal subs voor navigatie tussen de subforms.

code:
1
2
3
4
Public MustInherit Class SubForm_MasterControl

Public Mustoverride Sub ArrowNext() 
Public Mustoverride Sub ArrowPrev()


Hiermee kunnen we ervoor zorgen dat het mainform altijd de functie kan aanroepen, en elk subform kan dan zelf besluiten wat hij moet doen als die sub wordt aangeroepen.

Als we nu het project builden en runnen gaat het prima.
Maar als we de designer openen met een van de subforms krijgen we de melding:
"The designer must create an instance of type 'MasterControl', but it can't because the type is declared as abstract".

Beetje vreemd? Ik snap nml niet helemaal wat ik fout doe.

Acties:
  • 0 Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 09-09 10:50
Hier zie ik al een stuk of 3 oplossingen:
http://stackoverflow.com/...-the-type-is-declared-abs

Mijn iRacing profiel


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 10-09 15:29

Armageddon_2k

Trotse eigenaar: Yamaha R6

Topicstarter
Heb je de oplossingen ook bekeken? Het zijn geen oplossingen van het probleem namelijk, maar workarounds.
Er wordt daar een tussen class aangemaakt zodat het uiteindelijke subform niet erft van een abstract.
Maar dat is een super loze oplossing, want dan heb je niets meer aan je mustinherit functies.
Omdat je deze al in je tussenclass gaat declareren...

Acties:
  • 0 Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 09-09 10:50
Voor zover ik kan zien is het een bug in de IDE, dus vind ik het niet gek dat het workarounds zijn... Of ga je even zelf die bug oplossen?

Mijn iRacing profiel


Acties:
  • 0 Henk 'm!

  • alwinuzz
  • Registratie: April 2008
  • Laatst online: 08:46
Armageddon_2k schreef op woensdag 19 januari 2011 @ 11:49:
Maar als we de designer openen met een van de subforms krijgen we de melding:
"The designer must create an instance of type 'MasterControl', but it can't because the type is declared as abstract".
Oplossing: maak 'm niet abstract :P

Visual Basic:
1
2
3
4
5
6
7
8
Public [s]MustInherit[/s] Class SubForm_MasterControl

Public [s]Mustoverride[/s] [b]Virtual[/b] Sub ArrowNext() 
    Throw New NotImplementedException("eventuele uitleg")
End Sub
Public [s]Mustoverride[/s] [b]Virtual[/b] ArrowPrev() 
    Throw New NotImplementedException("eventuele uitleg")
End Sub


Zo werk ik er omheen in ieder geval.
hoe doe je formatting [b] en [s] in code tag?

[ Voor 5% gewijzigd door alwinuzz op 20-01-2011 18:54 ]