Called A Function in Array Of MDI Child Forms
Messages   Related Types
This message was discovered on microsoft.public.dotnet.framework.windowsforms.
Responses highlighted in red are from those people who are likely to be able to contribute good, authoratitive information to this discussion. They include Microsoft employees, MVP's and others who IMHO contribute well to these kinds of discussions.
Post a new message to this list...

Daniel Friend
I have a bunch of mdi child forms and I use a collection for which forms are
opened. I would like to call a public function in the open forms called
ChangeFormat, but I am getting the following error:

'ChangeFormat' is not a member of 'System.Windows.Forms.Form'.

Can somebody tell me how I can achieve this?

Thanks,

Dan

Example Code:
----------------------------------------------------------------------

Public Sub ChangeFormat()
Try
Dim frmAny As Form
For Each frmAny In Forms
Try
frmAny.ChangeFormat()
Catch
End Try
Next
Catch ex As Exception
End Try
End Sub

Reply to this message...
 
    
Herfried K. Wagner [MVP] (VIP)
* "Daniel Friend" <Click here to reveal e-mail address> scripsit:
[Original message clipped]

Replace the line above with this:

\\\
DirectCast(frmAny, AnyForm).ChangeFormat()
///

'AnyForm' is the type of your MDI children.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>
Reply to this message...
 
    
Daniel Friend
What if there are about 50 types of MDI children and you don't know which
one for need to change? I tried the following code to get the type, but I
get an error:
"aType is not defined"

Thanks for your help,

Dan

Public Sub ChangeFormat()
Try
Dim frmAny As Form
For Each frmAny In Forms
Dim aType As Type
aType = frmAny.GetType
Try
DirectCast(frmAny, aType).GetTheme()
Catch ex As Exception
End Try
Next
End Try
End Sub

"Herfried K. Wagner [MVP]" <Click here to reveal e-mail address> wrote in message
news:Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
 
    
Herfried K. Wagner [MVP] (VIP)
* "Daniel Friend" <Click here to reveal e-mail address> scripsit:
[Original message clipped]

Create an interface that all MDI child classes implement:

\\\
Public Interface ITheme
Sub GetTheme()
End Property
///

\\\
Public Class Form2
Inherits System.Windows.Forms.Form
Implements ITheme

Public Sub GetTheme() Implements ITheme.GetTheme
...
End Sub
.
.
.
End Class
///

[Original message clipped]

\\\
DirectCast(frmAny, ITheme).GetTheme()
///

[Original message clipped]

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>
Reply to this message...
 
 
System.Windows.Forms.Form




Ad
MBR BootFX
Best-of-breed application framework for .NET projects, developed by Matthew Baxter-Reynolds and MBR IT
 
 Copyright © Matthew Baxter-Reynolds 2001-2008. '.NET 247 Software Development Services' is a trading style of MBR IT Solutions Ltd.
Contact Us - Terms of Use - Privacy Policy - www.dotnet247.com