Вставить форму в tabcontrol в окнах форм - PullRequest
8 голосов
/ 27 апреля 2011

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

Ответы [ 5 ]

10 голосов
/ 27 апреля 2011
7 голосов
/ 27 апреля 2011

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

Лучше поместить содержимое в UserControls и добавить его в TabPage.

4 голосов
/ 26 октября 2012

Установите вашу MainForm (Parent) как IsMDIContainer = true;

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

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;

}
4 голосов
/ 27 апреля 2011

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

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

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.

2 голосов
/ 27 апреля 2011

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

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