Witam, mam pewien problem z zamykaniem zakładek w komponencie TabControl. Gdy mam np. 4 zakładki i postanowię zamknąć drugą z nich to aktywną zakładką powinna zostać ta, która znajduje się po niej i to działa tak jak chcę, ale tylko dla zakładek, które są zdefiniowane na sztywno, tzn., gdy są dodane w samym komponencie. Problem pojawia się, gdy chcę zamknąć zakładki, które są dodawane dynamicznie, wtedy pojawi się błąd "Wartość nie może być zerowa". Jako źródło błędu najczęściej wskazywana jest linijka
tabControl2.SelectTab(tabControl2.TabPages[k - 1].Text);
Podglądałem wszystkie wartości i wszystko jest tak jak być powinno a, mimo to i tak pojawia się błąd. Czy mógłby ktoś powiedzieć mi co tak naprawdę jest nie tak i w jaki sposób to naprawić? Poniżej umieszczam kod odpowiedzialny za zamykanie zakładek:
for (int i = 0; i < tabControl2.TabCount; i++)
{
Rectangle rect = tabControl2.GetTabRect(i);
if (rect.Contains(tabControl2.PointToClient(Cursor.Position)))
{
int k = i;
tabControl2.TabPages.RemoveAt(i);
if (tabControl2.TabCount != 0)
{
if (k <= tabControl2.TabCount - 1)
{
tabControl2.SelectTab(tabControl2.TabPages[k].Text);
}
else
{
tabControl2.SelectTab(tabControl2.TabPages[k - 1].Text);
}
}
}
}