Я создал простой пользовательский элемент управления, который создается вручную с помощью чего-то вроде
MyUserControl ctrl = new MyUserControl();
Элемент управления был разработан, чтобы иметь BackColor = Color.Transparent , и это прекрасно работает, пока я не установлю Parent элемента управления в форму, в которой он превращается в цвет формы.
Может показаться прозрачным, но он скрывает все элементы управления, существующие в форме. Я не уверен на 100%, что это элемент управления, который получает сплошной фон или что-то еще, что происходит, когда я подключаю его, что мешает отображению других элементов управления.
В основном, если вы делаете это
- Создать форму
- Нажмите на кнопку
- В обработчике клика для кнопки вы делаете следующее
* * Пример тысяча двадцать-одина * * тысяча двадцать-дв
MyUserControl ctrl = new MyUserControl();
ctrl.Parent = this;
ctrl.BackColor = Color.Transparent;
ctrl.Size = this.Parent.ClientRectangle.Size;
ctrl.Location = this.Parent.ClientRectangle.Location;
ctrl.BringToFront();
ctrl.Show();
По сути, я хочу, чтобы usercontrol перекрывал всю форму, показывая на ней нижележащие элементы управления (отсюда и прозрачный фон). Я не хочу добавлять его в коллекцию элементов управления формами, потому что он на самом деле не принадлежит форме, он просто отображается поверх всего остального
Я пытался сделать то же самое, но без установки родителя, но затем элемент управления вообще не показывался.
Спасибо!
РЕДАКТИРОВАТЬ: если я переопределить метод OnPaintBackground в пользовательском контроле и не буду рисовать фон, то он будет работать, однако это будет мешать прозрачным частям изображения PNG, которое я рисую в элементе управления с помощью DrawImage, что имеет смысл.