C#在选项卡控件中存储选项卡页面的原始位置

时间:2010-08-01 18:58:45

标签: c# winforms tabcontrol tabpage

我对C#比较陌生,我正在尝试使用一个标签控件,其中有5个标签页。这些标签页在需要时显示和隐藏,我可以将页面重新添加到所需的位置,例如tabPage 2应该在tabPage1和tabPage3之间重新添加,方法是传入与我希望它出现的位置相关的数字并交换页面。如何存储tabPages的原始位置,然后只是说tabPage2应该被添加到tabPage2的存储位置?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以将原始位置存储在Tag属性中。需要一些逻辑,因为第1页和第3页都不存在。这应该是接近的:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        for (int page = 0; page < tabControl1.TabCount; ++page)
            tabControl1.TabPages[page].Tag = page;
    }

    private List<TabPage> hiddenPages = new List<TabPage>();

    public void ShowTab(TabPage page) {
        int pos = (int)page.Tag;
        int insertPoint;
        for (insertPoint = 0; insertPoint < tabControl1.TabCount; ++insertPoint) {
            if (pos <= (int)tabControl1.TabPages[insertPoint].Tag) break;
        }
        tabControl1.TabPages.Insert(insertPoint, page);
        hiddenPages.Remove(page);
    }
}