Создайте улучшенный собственный шаблон TabControl в C#

Сообщение Создайте собственный шаблон TabControl в C# показывает, как создать управляемый вкладкой элемент управления вкладками. К сожалению, управление ведет себя странно, если оно недостаточно широкое, чтобы отображать все его вкладки сразу. Если элемент управления слишком мал и вы нажимаете последнюю вкладку, элемент управления прокручивает свои вкладки влево, прежде чем выбрать вкладку, которую вы нажали.

Это странно, но не вредно, но что-то хуже происходит, если вы нажмете кнопку X на последней вкладке, чтобы удалить ее. В этом случае код исходного примера вызывает метод RemoveAt элемента управления для удаления последней вкладки. К сожалению, по какой-то причине я не смог понять, вместо этого элемент управления удаляет второй-последний элемент.

К счастью, это легко обойти. Вместо того, чтобы использовать этот код для удаления номера вкладки i:

tabMenu.TabPages.RemoveAt(i);

В новом примере для удаления этой же вкладки используется следующий оператор.

tabMenu.TabPages.Remove(tabMenu.TabPages[i]);

Это изменение не должно иметь значения, поэтому тот факт, что он исправляет проблему, показывает, что внутри TabControl есть что-то не так.

Элемент управления по-прежнему неожиданно прокручивает вкладки, но по крайней мере он больше не удаляет неправильную вкладку.

Источник: http://csharphelper.com/blog/2015/06/make-an-improved-owner-drawn-tabcontrol-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector