2008-09-09 9 views
6

Chcę załadować aplikację pulpitu, poprzez odbicie, jako kontrolę wewnątrz innej aplikacji.Czy można załadować formularz .Net jako formant?

Aplikacja, którą przedstawiam, jest starsza - nie mogę wprowadzać w niej zmian.

Mogę dynamicznie uzyskiwać dostęp do formularza, ale nie mogę go załadować jako formantu.

W .NET Form rozszerza się na formant, a ja mogę przypisać odzwierciedlony formularz jako formant, ale generuje wyjątek w czasie wykonywania.

Formularzy nie można załadować jako elementów sterujących.

Czy istnieje sposób przekonwertowania formularza na formant?

Odpowiedz

10

Tak, to działa dobrze. Pracuję teraz nad aplikacją .NET, która ładuje formularze do panelu na formularzu hosta.

Odpowiedni fragment:

// setup the new form 
form.TopLevel = false; 
form.FormBorderStyle = FormBorderStyle.None; 
form.Dock = DockStyle.Fill; 
form.Show (); 

// add to the panel's list of child controls 
panelFormHost.Controls.Add (form); 
+0

Testowane i to działa. Dzięki :-) – Keith

1

Powinieneś móc dodać formularz do zbierania sterami swojej postaci dominującej ...

Zobacz tutaj: http://vbcity.com/forums/topic.asp?tid=30539

Jeśli to nie pomoże, spróbuj użyć wzoru karty do tworzenia kontenera z twoją starszą formą, a potem załadować ją do MDI?

1

Co jest wyjątkiem dostać? Czy to możliwe, że sama kontrola daje wyjątek (w porównaniu do ram)? Być może coś jest wywoływane w pierwotnych aplikacjach Główna funkcja, która nie jest wywoływana?

+0

Otrzymałem błąd związany z właściwością TopLevel, coś, czego nie można ustawić na formancie, ale może na formularzu. – Keith

Powiązane problemy