.NET: как преобразовать форму окна в элемент управления Windows
У меня есть форма .NET 3.5, которую я бы хотел встроить в другую форму. Есть ли быстрый способ превратить эту форму в элемент управления?
Спасибо
Ответ 1
Измените форму, чтобы наследовать от UserControl вместо Form, а затем исправить любые ошибки компиляции.
Ответ 2
Также есть способ вставить форму в элемент управления: Здесь код в 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
Я думаю, что я приобрел этот код из другого сообщения SO, но я не могу вспомнить, где, извините, если это ваш фрагмент кода!
Ответ 3
Не говоря, что вы должны это делать сейчас, но в будущем вы можете взглянуть на MEF. Его основой для (помимо всего прочего) построения композитных приложений, которые он звучит, может быть то, чего вы пытаетесь достичь.
Ответ 4
Я использовал решение @Neil Barnwell с добавлением.
Я вручную отредактировал файл .vbprog и изменил форму "SubType" на "UserControl":
<SubType>UserControl</SubType>
Это позволяет значку в проводнике проекта показывать как пользовательский элемент управления, а не форму.