0

我正在做一个 ERP 项目。它是 treeView 框上的一个按钮,当它单击 treeView 中的按钮时,它必须创建一个带有其内容的选项卡(之前定义设计的内容)。

我可以以编程方式添加选项卡,但如何设计其内容?

4

3 回答 3

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

在您的项目中,添加一个UserControl名为 ContentControl 的新名称(或您需要的任何内容,在我的示例中使用它),并用您希望出现在选项卡中的所有内容填充它。

于 2012-10-29T15:19:30.323 回答
1

您有几个解决方案,最简单的一种是创建TabPage,创建所需的控件,设置它们的属性(即大小、位置、文本等),将它们TabPage添加TabPageTabControl.

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,您将在类的构造函数中设置控件。然后,当您要添加 new 时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然后添加TabPageTabControl.

 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);
于 2012-10-29T15:21:01.063 回答
0

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

于 2012-10-29T15:07:19.557 回答