В настоящее время я пишу пользовательский элемент управления с вкладками. Я создал свой собственный элемент управления вместо рисования владельцем TabControl, потому что полагал, что он будет быстрее и более гибким. Мой стиль управления вкладками сам по себе после элемента управления вкладки VS2008; то есть, когда вкладка выбрана, часть этой вкладки находится перед другими невыбранными вкладками.
Мой элемент управления вкладками состоит из панели, содержащей все мои объекты TabButton, которые сами являются собственными вкладками. Я установил прозрачность TabButton следующим образом:
public TabButton()
{
...
SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
UpdateStyles();
this.BackColor = Color.Transparent;
}
Однако, когда вкладка выбрана и находится перед другой вкладкой, часть невыбранной вкладки, которая должна появиться за частью выбранной вкладки, не отображается. Это стандартный SystemColors.Control
цвет, который заполняет остальную часть прямоугольника отсечения для выбранной кнопки.
Как мне добиться правильной прозрачности в моем пользовательском элементе управления?
Также: TabButton наследует Control, поэтому мне нужно было использовать SetStyle
для использования прозрачности.
-Эрик Смит