Встраивание формы в tabcontrol в windows forms
У меня есть элемент управления tab в форме windows, и я хочу иметь возможность щелкнуть вкладку, а в области тела вкладки я хочу, чтобы она отображала другую форму как встроенный компонент. Возможно ли это? Если да, то может ли кто-нибудь привести пример или ссылку на пример того, как это сделать?
5 ответов
вы можете вставить форму, но это не лучший выбор.
лучше разместить содержимое на 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, вы можете попробовать поместить все из желаемой формы в пользовательский элемент управления и добавить этот пользовательский элемент управления как в форме, так и на вкладке.