Создайте улучшенный собственный шаблон TabControl в C#
Сообщение
Это странно, но не вредно, но что-то хуже происходит, если вы нажмете кнопку X на последней вкладке, чтобы удалить ее. В этом случае код исходного примера вызывает метод RemoveAt элемента управления для удаления последней вкладки. К сожалению, по какой-то причине я не смог понять, вместо этого элемент управления удаляет второй-последний элемент.
К счастью, это легко обойти. Вместо того, чтобы использовать этот код для удаления номера вкладки i:
tabMenu.TabPages.RemoveAt(i);
В новом примере для удаления этой же вкладки используется следующий оператор.
tabMenu.TabPages.Remove(tabMenu.TabPages[i]);
Это изменение не должно иметь значения, поэтому тот факт, что он исправляет проблему, показывает, что внутри TabControl есть что-то не так.
Элемент управления по-прежнему неожиданно прокручивает вкладки, но по крайней мере он больше не удаляет неправильную вкладку.