Your MDI Parent would need to act as a pass through. What you are describing seems to be that you don't have any direct or indirect access to the sibling form, which is why you can only see it as a static because that does not require an instance.
You would need to do something like this:
On the MDIParent expose a method called RefreshGridOnFormType3() (or some other long and tedious name). The body of the method would look something like
public void RefreshGridOnFormType3()
{
// psudo code
foreach (Form f in this.MdiChildren)
if (f is Form3)
f.RefreshGrid() // need to cast this to a Form3 object
}
From your form 2, whenever you update a cell you would call the refresh method on the MdiParent
Form1 parentForm = (Form1) this.MdiParent;
parentForm.RefreshGridOnFormType3()
And form 3 would have a public method call RefreshGrid that would do whatever logic you want to do.
There are a few other variations on the theme, but that is the general idea.
Wouldn't it be easy to just expose a property on Form 3 that allows access to the Grid? Or a public method on Form 3 that would call the refresh on it's grid?
Hi,
So... what's your question?