这是我的代码:

    public MainForm()
    {
        InitializeComponent();

        MyServiceSettings obj = (MyServiceSettings)ConfigurationManager.GetSection("MyServiceSettings");

        foreach (MyServiceConfigElement service in obj.Services)
            CreateServiceControl(service);
    }

    private void CreateServiceControl(MyServiceConfigElement service)
    {
        TabPage tp = new TabPage(service.Name);
        tabControl1.TabPages.Insert(0, tp);
        //tabControl1.TabPages.Add(tp);
        tabControl1.Refresh();
    }

简而言之,它读取配置文件中的一个部分,并为该部分中的每个元素创建一个选项卡。

我已经在设计时创建了一个静态TabPage。我希望在此静态选项卡之前插入动态创建的选项卡。

运行此代码,tabcontrol仅显示静态tabpage。

如果我进行此更改:
        private void CreateServiceControl(SoftInfoServiceConfigElement service)
    {
        TabPage tp = new TabPage(service.Name);
        //tabControl1.TabPages.Insert(1, tp);
        tabControl1.TabPages.Add(tp);
        tabControl1.Refresh();
    }

使用Add方法显示所有页面。但是我没有得到想要的订单。

插入方法有我不了解的地方吗?为什么不起作用?

最佳答案

关于social.msdn的评论-尽管我在文档中找不到这样的东西:



试试上面提到的代码

IntPtr h = this.tabControl1.Handle;

在您遍历服务之前

关于c# - Visual Studio-TabControl.TabPages.Insert无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1532301/

10-13 06:06