C # Сохранение исходных позиций вкладок в элементе управления вкладками - PullRequest
1 голос
/ 01 августа 2010

Я относительно новичок в C # и пытаюсь использовать элемент управления с вкладками, в котором есть 5 вкладок.Эти страницы вкладок отображаются и скрываются при необходимости, и я могу повторно добавить страницы в требуемую позицию, например, tabPage 2 следует повторно добавить между tabPage1 и tabPage3, передав число, относящееся к позиции, в которой я хочу, чтобы она появлялась, иобмениваясь страницами вокруг.Как сохранить исходные позиции tabPages, а затем просто сказать, что tabPage2 должен быть добавлен в сохраненную позицию tabPage2?

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 01 августа 2010

Вы можете сохранить исходную позицию в свойстве 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);
    }
}
...