在C#中的选项卡控件中的标签页内加载控件?

时间:2015-02-26 09:36:00

标签: c# .net

是否可以在C#中的选项卡控件的标签页中加载表单?

4 个答案:

答案 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类扩展的任何实例。所以,是的,这是可能的。

https://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection.add%28v=vs.110%29.aspx

答案 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();
    }