Mam formularz okna .NET 3.5, który chciałbym osadzić w innej formie. Czy istnieje szybki sposób przekształcenia tej formy w formant?.NET: Jak przekonwertować formularz okna na kontrolkę systemu Windows
Dzięki
Mam formularz okna .NET 3.5, który chciałbym osadzić w innej formie. Czy istnieje szybki sposób przekształcenia tej formy w formant?.NET: Jak przekonwertować formularz okna na kontrolkę systemu Windows
Dzięki
zmienić formę dziedziczyć z UserControl zamiast formy, a następnie rozwiązać każdy kompilacji błędów.
Jest też sposób osadzić formularz w kontroli: Oto kod w VB:
Public Shared Sub ShowFormInControl(ByRef ctl As Control, ByRef frm As Form)
If ctl IsNot Nothing AndAlso frm IsNot Nothing Then
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Fill
frm.Visible = True
ctl.Controls.Add(frm)
End If
End Sub
myślę nabył ten kod z innego wątku na SO, ale nie pamiętam gdzie, więc Przepraszam, jeśli to jest twój fragment kodu!
Nie mówię, że powinieneś to zrobić teraz, ale w przyszłości możesz spojrzeć na MEF. Jest to szkielet dla (między innymi) tworzenia złożonych aplikacji, które jak brzmi, mogą być tym, co próbujesz osiągnąć.
Użyłem rozwiązania @Neil Barnwell z dodatkiem. ręcznie edytować plik .vbprog i zmienił „podtyp” Forma na „UserControl”:
<SubType>UserControl</SubType>
Pozwala to na ikonę w Eksploratorze projektu, aby pokazać jako kontroli użytkownika, a nie formę.
Właśnie znalazłem tę odpowiedź podczas samodzielnego rozwiązywania tego samego problemu. Niesamowite, jakie to łatwe. –
Jak to zrobić w VB.NET? Formularz jest po prostu zadeklarowany jako "Public Class TimeSheetGrid", bez wyraźnego "Dziedziczenia". – ProfK
W programie Visual Studio 2012 (przynajmniej) lub za pomocą stosunkowo prostych formularzy próbowałem, czyniąc to właśnie tworzy kod użyteczności, ale nie można otworzyć formantu w projektancie VS. Brak błędów, ale po otwarciu projektant pokazuje tylko listę wszystkich elementów sterujących, podobnie jak w przypadku elementów dialogowych pliku/etc. ale nie widzisz układu sterowania. Jeśli ktoś wie, jak to naprawić, powiedz! –