I have a situation where I have 3 forms. I open Form2
from Form1
and Form3
from Form2
Form2
is shown as ModalForm, Form3
is not.
When I run this project in Windows, I can switch between Form2
and Form3
but I cannot go back to Form1
before I close Form2
(as expected).
In OSX, Form3
is opened behind Form2
and cannot be accesed(not expected) until I close Form2
.
What is the usual design philosophy for Multi-platform projects?
Should I always open Childform in same state as parentform if the parentform is Modal?
I'd set this up where the non-modal form (
Form3
) is opened from the main form (Form1
). That way, there's no question about its parentage. I'd put a method intoForm2
that's initialized fromForm1
after it createsForm2
but before it callsShowModal
thatForm2
uses to openForm3
. Include any parameters in the call thatForm2
needs to pass intoForm3
.This approach eliminates the explicit circular reference between
Form1
andForm2
and keepsForm3
independent ofForm2
.