Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Inheritance in vb.net
Message
 
À
17/10/2010 10:39:21
Information générale
Forum:
ASP.NET
Catégorie:
Formulaires
Versions des environnements
Environment:
VB 8.0
OS:
Vista
Network:
Windows XP
Database:
Jet/Access Engine
Application:
Desktop
Divers
Thread ID:
01485789
Message ID:
01485821
Vues:
36
Right. I stand corrected :)

>>Sounds promising. Btu if my "txtBase" can "implement" the interface, they can't "inherit" from textbox, can they?
>
>Sure they can. There is no multiple inheritance, but you can implement as many interfaces as you want. The C# syntax is this:
>
>
>public class txtBase : TextBox, IIOEnable
>{
>    public void IOEnable(object value)
>    { 
>        // your method code
>    }
>}
>
>
>I *think* the VB syntax would be something like this:
>
>
>Public Class txtBase
>    Inherits TextBox
>    Implements IIOEnable
>    
>    Public Sub IOEnable(ByVal value As Object)
>        ' your method code
>    End Sub
>End Class
>
>
>~~Bonnie
>
>>
>>
>>>I would define an interface IIOEnable and have your subclassed controls implement that interface
>>>
>>>then - excuse the syntax - vb and c# mixture
>>>
>>>foreach ( Control ctrl in Me.Controls )
>>>{
>>>    IIOEnable ctrl1 = ctrl as IIOEnable ;
>>>    if( ctrl1 != null )
>>>         ctrl1.ioEnable(value);
>>>
>>>}
>>>
>>>
>>>
>>>
>>>
>>>>I have subclassed textboxes, panels and buttons. For each of those controls, I wrote an IOEnable method. I would like my (subclassed) form to execute these methods. I came up with something like this, which works, but am wondering if there is not a more generic approach to this, because now, each time I subclass a control I have to kind of "register" it here and in every container.
>>>>
>>>>For Each ctrl As Control In Me.Controls
>>>>     If TypeOf ctrl Is txtBase Then
>>>>         Dim ctrl1 As txtBase = ctrl
>>>>         ctrl1.ioEnable(value)
>>>>     End If
>>>>     If TypeOf ctrl Is pnlBase Then
>>>>         Dim ctrl1 As pnlBase = ctrl
>>>>         ctrl1.ioEnable(value)
>>>>     End If
>>>>     If TypeOf ctrl Is btnBase Then
>>>>         Dim ctrl1 As btnBase = ctrl
>>>>         ctrl1.ioEnable(value)
>>>>     End If
>>>> Next
>>>>
>>>>
>>>>In VFP this looked like this
>>>>
>>>>for each o in this.Controls
>>>>        if !pemstatus(o,'IOEnable',5)
>>>>            loop
>>>>        endif
>>>>        o.IOEnable()
>>>>    endif
>>>>endfor
>>>>

If things have the tendency to go your way, do not worry. It won't last. Jules Renard.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform