.Net C# MDI Floating Childing windows

Using the latest WeifenLuo(Dock Panel Suite)  and I'm not very expirienced in MDI development. My problem is that my child windows need to update a StatusBar and ProgressBar on the Parent. When the child window is Docked on the Parent this is accomplished my just casting the MDIParent property on the Child window but I get an Cast error if the Child window is Floating.

Is there another way of referencing the parent when Floating the child window?
csalernoAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Bob LearnedCommented:
My usual weapon of choice in that scenario would be to define an event, and add an event handler in the child windows, but I am not sure of the implementation details in your case.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ste5anSenior DeveloperCommented:
An event - as Bob wrote - is the easist solution. Another would be a message queue.
0
csalernoAuthor Commented:
Not sure how to write the event & handler for the Parent and Child window. Would you have any examples to point to?
0
Bob LearnedCommented:
The normal approach for a parent/child class structure would be something like this:

public class Parent
{
      public event EventHandler MyEvent;

      public void OnMyEvent(object sender, EventArgs e)
      {
           if (MyEvent != null)
               MyEvent(sender, e);
      }
}

public class Child
{
       public Child(Parent parent)
       {
            if (parent == null)
                throw new ArgumentNullException("parent");
            
            parent.MyEvent += new MyEventHandler();
       }

       private void MyEventHandler(object sender, EventArgs e)
       {
               ' The event was raised, so handle it.
       }
}

Open in new window

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.