将Tab添加到Tab控件及其内容

时间:2012-10-29 15:02:26

标签: c#

我正在研究ERP项目。它是treeView框上的一个按钮,当它点击treeView中的一个按钮时,它必须创建一个带有内容的标签(内容是之前定义的设计)。

我可以通过编程方式添加标签但是如何设计其内容?

3 个答案:

答案 0 :(得分:2)

将此添加到树视图的点击事件中应该可以完成您的操作:

var contentControl = new ContentControl ();    //This is what we will put all your content in
contentControl.Dock = DockStyle.Fill;

var page = new TabPage("Tab Text");    //the title of your new tab
page.Controls.Add(contentControl);     //add the content to the tab

TabControl1.TabPages.Add(page);        //add the tab to the tabControl

在您的项目中,添加一个名为ContentControl的新UserControl(或您需要的任何内容,仅在我的示例中使用此内容),并在其中填入您希望在标签中显示的所有内容。

答案 1 :(得分:1)

您的解决方案很少,最简单的方法是创建TabPage,创建所需的控件,设置其属性(即大小,位置,文本等),将它们添加到TabPage然后将TabPage添加到TabControl

TabPage tp = new TabPage();
//create controls and set their properties
Button btn1 = new Button();
btn1.Location = new Point(10,10);
btn1.Size = new System.Drawing.Size(30,15);
//add control to the TabPage
tp.Controls.Add(btn1);
//add TabPage to the TabControl
tabControl1.TabPages.Add(tp);

第二个解决方案是覆盖您的类中的TabPage,例如CustomTabPage,您将在该类的构造函数中设置控件。然后,当您想要添加新的TabPage时,请创建CustomTabPage个实例并将其添加到TabControl

public class CustomTabPage : TabPage
{
    public CustomTabPage()
    {
        //create your Controls and setup their properties
        Button btn1 = new Button();
        btn1.Location = new Point(20, 20);
        btn1.Size = new System.Drawing.Size(40, 20);
        //add controls to the CustomTabPage
        this.Controls.Add(btn1);
    }
}

//Create CustomTabPage
CustomTabPage ctp = new CustomTabPage();
tabControl1.TabPages.Add(ctp);

第三个解决方案(最好但最复杂的)是创建所需的UserControl,其中包含您想要的所有内容(您可以使用Designer帮助),然后创建UserControl的实例,创建TabPage并在UserControl上添加TabPage。然后将TabPage添加到TabControl

 public partial class CustomControlForTabPage : UserControl
 {
     public CustomControlForTabPage()
     {
         InitializeComponent();
     }
 }

//Create CustomControl
TabPage tp = new TabPage();
CustomControlForTabPage ccftp = new CustomControlForTabPage();
//set properties you like for your custom control
tp.Controls.Add(ccftp);
tabControl1.TabPages.Add(ctp);

答案 2 :(得分:0)

向项目添加一个新的用户控件,然后使用设计器进行控件/布局,然后当您单击所有时,您将向选项卡添加一个新的用户控件实例 - 可能停靠以填充选项卡,除非您的表单是大小是固定的。