Добавить форму в UserControl - это возможно? - PullRequest
9 голосов
/ 06 сентября 2011

Обычно элементы управления добавляются в формы. Но мне нужно сделать обратное - добавить экземпляр Form в пользовательский элемент управления контейнера.

Причина этого заключается в том, что мне нужно встроить стороннее приложение в свое собственное. Преобразование формы в пользовательский элемент управления невозможно из-за сложности.

1 Ответ

12 голосов
/ 06 сентября 2011

Это возможно, если для свойства TopLevel формы установлено значение false. Что превращает его в дочернее окно, почти неотличимое от UserControl. Вот пример пользовательского элемента управления с требуемым кодом:

public partial class UserControl1 : UserControl {
    public UserControl1() {
        InitializeComponent();
    }
    public void EmbedForm(Form frm) {
        frm.TopLevel = false;
        frm.FormBorderStyle = FormBorderStyle.None;
        frm.Visible = true;
        frm.Dock = DockStyle.Fill;   // optional
        this.Controls.Add(frm);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...