如何在c#中的选项卡控件上添加表单

问题描述 投票:0回答:5

我有一个带有文本框和数据网格视图的表单页面以及包含选项卡控件的其他表单。我想在第二个表单中添加第一个表单选项卡。我尝试编写显示表单的代码,但它比选项卡容器大并且不适合。仅出现一半的表格。

这是我的代码:

private void tcMainPage_SelectedIndexChanged(object sender, EventArgs e)
{
      if (tcMainPage.SelectedIndex == 0)
      {
          GTOWN.PrintingPage BookInfo = new PrintingPage();
          BookInfo.TopLevel = false;
          BookInfo.FormBorderStyle = FormBorderStyle.None;
          BookInfo.Dock = DockStyle.Fill;
          tpSearch.Controls.Add(BookInfo);
          BookInfo.Show();
       }    
}

this is the form

and that is what appears

c# forms winforms visual-studio tabcontrol
5个回答
1
投票

我面临这个问题,如果有帮助的话我创建这个

public void addform(TabPage tp, Form f)
    {                      
        
        f.TopLevel = false;
        //no border if needed
        f.FormBorderStyle = FormBorderStyle.None;            
        f.AutoScaleMode = AutoScaleMode.Dpi;
        
        if (!tp.Controls.Contains(f))
        {
            tp.Controls.Add(f);
            f.Dock = DockStyle.Fill;
            f.Show();
            Refresh();
        }
        Refresh();            
    }

0
投票

将您的主表单设置为容器。

yourForm.IsMdiContainer = true;

然后将子表单添加到tabPage中:

private void tcMainPage_SelectedIndexChanged(object sender, EventArgs e)
{
    if (tcMainPage.SelectedIndex == 0)
    {
        PrintingPage newFrm = new PrintingPage
        {
            MdiParent = this,
            // This set the form parent as the tabClicked
            Parent = tcMainPage.TabPages[0]
        };
        newFrm.Show();
    }
}

0
投票

my tab form work good in the same code

谢谢您,我的所有代码都是正确的,但问题出在选项卡属性中,我删除了该选项卡并添加了另一个选项卡,代码现在可以正常工作了

谢谢你


0
投票

// https://youtu.be/TBh__9uh5iA

// mainform.cs

        TabForm1 form1 = new TabForm1(tabPage1);
        form1.TopLevel = false ;
        form1.Show();
        tabPage1.Controls.Add(form1) ;

// tabForm

public partial class TabForm1 : Form
{
    public TabForm1(Control parent)
    {
        InitializeComponent();

        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None ;
        this.Size = parent.Size;
        this.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom ;
    }
}

-2
投票

表单是最顶层的对象,不能放置在其他容器内。

您可能需要重构代码,以便表单上的项目位于用户控件上。此时,您可以将该 UserControl 添加到 Form 和 TabControl

public UserControl myControl(){ /* copy your current view code here */}

public Form myForm(){
  Controls.Add(new myControl());
}

public Form myTabbedForm(){
  var tabControl = new TabControl();
  var page1 = new TabPage();
  page1.Controls.Add(new myControl());
  tabControl.TabPages.Add(page1);
  this.Controls.Add(tabControl);
}
© www.soinside.com 2019 - 2024. All rights reserved.