static void OnFormAdded(object sender, EventArgs args) { Form f = (Form)sender; if (formProviders.ContainsKey(f)) { return; } FormProvider provider = (FormProvider) ProviderFactory.GetProvider(f, true); // NOTE: Form Provider Releasing is done by FormProvider // Pass false in last argument so that InitializeChildControlStructure // isn't called when the provider is created. We'll do // that manually after alerting the bridge to the presence // of the new form. formProviders [f] = provider; if (f.Owner == null) //For example is not MessageBox, f.ShowDialog or XXXXXDialog //Initialize navigation to let children use it { provider.Navigation = NavigationFactory.CreateNavigation(provider); provider.Navigation.Initialize(); // TODO: Fill in rest of eventargs Helper.RaiseStructureChangedEvent(StructureChangeType.ChildAdded, provider); provider.InitializeChildControlStructure(); } else { FormProvider ownerProvider = (FormProvider)ProviderFactory.FindProvider(f.Owner); ownerProvider.AddChildProvider(provider); } }