Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Inheritance in vb.net
Message
From
17/10/2010 10:39:21
 
General information
Forum:
ASP.NET
Category:
Forms
Environment versions
Environment:
VB 8.0
OS:
Vista
Network:
Windows XP
Database:
Jet/Access Engine
Application:
Desktop
Miscellaneous
Thread ID:
01485789
Message ID:
01485805
Views:
46
>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
>>>
Bonnie Berent DeWitt
NET/C# MVP since 2003

http://geek-goddess-bonnie.blogspot.com
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform