Подтвердить что ты не робот

.NET: как преобразовать форму окна в элемент управления Windows

У меня есть форма .NET 3.5, которую я бы хотел встроить в другую форму. Есть ли быстрый способ превратить эту форму в элемент управления?

Спасибо

4b9b3361

Ответ 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>

Это позволяет значку в проводнике проекта показывать как пользовательский элемент управления, а не форму.