Связанное решение неоправданно сложно для того, что вы хотите сделать. Вот фрагмент кода, который делает то, что вы хотите. Он основан на форме с 3 или более вкладками. Предположим, что в любой момент времени вы хотите, чтобы отображалась либо вкладка 2, либо вкладка 3, но не обе одновременно. Если в форме есть больше вкладок, они отображаются после вкладок 2 или 3, поэтому ваша чередующаяся вкладка всегда будет отображаться в одной и той же позиции указателя. Также предположим, что на вкладке 1 есть пара переключателей с именами «tab2button» и «tab3button», которые переключают, какая из вкладок отображается. Событие checkaged для переключателей будет содержать следующее (c ++):
if (this->tab2button->Checked)
{
if(tabControl1->TabPages->Contains(tabPage3))
{
tabControl1->TabPages->Remove(tabPage3);
}
if(!tabControl1->TabPages->Contains(tabPage2))
{
tabControl1->TabPages->Insert(1,tabPage2);
}
}
else if (this->tab3button->Checked)
{
if(tabControl1->TabPages->Contains(tabPage2))
{
tabControl1->TabPages->Remove(tabPage2);
}
if(!tabControl1->TabPages->Contains(tabPage3))
{
tabControl1->TabPages->Insert(1,tabPage3);
}
}