是否可以在C#中的选项卡控件的标签页中加载表单?
答案 0 :(得分:3)
我的代码是vb.net语言,您需要将其转换为c#。
假设您有两种形式: 1)MainForm - 包含tabcontrol的表单(假设它有2页) 2)UserForm - 要添加到MainForm的tabcontrol页面中的表单。
有两种解决方案:
1解决方案:在MainForm的load事件中编写此代码......
Private Sub MainForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim frmUser As New UserForm
frmUser.TopLevel = False
frmUser.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.TabControl1.TabPages(0).Controls.Add(frmUser)
frmUser.Show()
End Sub
注意:您可以更改bordertyle以适合您的喜好。您可以将其设置为" NONE"因此,UserForm中的控件将显示为选项卡页控件的一部分,而不是表单本身。
2解决方案
将UserForm创建为"用户控件"而不是"形式"然后重建。在对象资源管理器的对象列表中找到它后,您可以将对象拖到MainForm上的标签页中。
您还可以尝试this link
希望这会有所帮助。
答案 1 :(得分:2)
您可以向ControlCollection添加从Control类扩展的任何实例。所以,是的,这是可能的。
答案 2 :(得分:2)
这些可能是解决方案:
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;
}
希望有所帮助
答案 3 :(得分:0)
要求是在标签页中加载一个表单..并且标签控件包含多个标签页,所以我在SelectedPageChanged事件中编写了代码..并且正确地得到了..这是我试过的代码< / p>
private void xtraTabControl1_SelectedPageChanged(object sender,DevExpress.XtraTab.TabPageChangedEventArgs e){
XtraForm2 mForm2 = new XtraForm2();
mForm2.TopLevel = false;
mForm2.FormBorderStyle = FormBorderStyle.None;
mForm2.Parent = this.xtraTabPage2;
mForm2.Dock = DockStyle.Fill;
mForm2.Show();
}