Встраивание формы в tabcontrol в windows forms

У меня есть элемент управления tab в форме windows, и я хочу иметь возможность щелкнуть вкладку, а в области тела вкладки я хочу, чтобы она отображала другую форму как встроенный компонент. Возможно ли это? Если да, то может ли кто-нибудь привести пример или ссылку на пример того, как это сделать?

5 ответов


вы, вероятно, ищете вкладками MDI дочерние формы


вы можете вставить форму, но это не лучший выбор.

лучше разместить содержимое на UserControls и добавить его на вкладку.


установите MainForm (Родительский) как IsMDIContainer = true;

создайте экземпляр дочерней формы и вызовите эту функцию:

FormChild frmChild = new FormChild();
AddNewTab(frmChild);

скопируйте эту функцию в свой код:

private void AddNewTab(Form frm)
{

    TabPage tab = new TabPage(frm.Text);

    frm.TopLevel = false;

    frm.Parent = tab;

    frm.Visible = true;

    tabControl.TabPages.Add(tab);

    frm.Location = new Point((tab.Width - frm.Width) / 2, (tab.Height - frm.Height) / 2);

    tabControl.SelectedTab = tab;

}

Я думаю, что другой ответ имеет правильную идею; вкладками MDI, вероятно, то, что вы хотите.

существует подход, при котором вы создаете UserControl, который имеет то же содержимое, что и форма, и используете его на вкладке.

TabPage myTabPage = new TabPage(sometext);
myUserControl = new myUserControlType();
myUserControl.Dock = DockStyle.Fill;
myTabPage.Controls.Add(myUserControl);
myTabControl.Add(myTabPage);

http://bytes.com/topic/c-sharp/answers/270457-can-i-add-form-tabpage переходит в более подробно; но я смотрел на МДИ вещи в первую очередь.


Если вы не хотите использовать MDI, вы можете попробовать поместить все из желаемой формы в пользовательский элемент управления и добавить этот пользовательский элемент управления как в форме, так и на вкладке.