ezanaw Ответов: 2

Winforms C# делает фон панели прозрачным


Привет Ребята,

Я пытаюсь создать меню с помощью панелей и кнопок в проекте C# Winforms.
Раньше я устанавливал фон на прозрачный, и он работал, Теперь я пытаюсь установить его на прозрачный в свойствах безрезультатно, нужна помощь
Спасибо

this.OrganizationMenuPanel.BackColor = System.Drawing.Color.Transparent;
            this.OrganizationMenuPanel.Controls.Add(this.button16);
            this.OrganizationMenuPanel.Controls.Add(this.button15);
            this.OrganizationMenuPanel.Controls.Add(this.button14);
            this.OrganizationMenuPanel.Controls.Add(this.button13);
            this.OrganizationMenuPanel.Controls.Add(this.button12);
            this.OrganizationMenuPanel.Controls.Add(this.button11);
            this.OrganizationMenuPanel.Controls.Add(this.button10);
            this.OrganizationMenuPanel.Controls.Add(this.button9);
            this.OrganizationMenuPanel.Controls.Add(this.button8);
            this.OrganizationMenuPanel.Location = new System.Drawing.Point(148, 148);
            this.OrganizationMenuPanel.Name = "OrganizationMenuPanel";
            this.OrganizationMenuPanel.Size = new System.Drawing.Size(171, 372);
            this.OrganizationMenuPanel.TabIndex = 4;
            this.OrganizationMenuPanel.Visible = false;
            this.OrganizationMenuPanel.Leave += new System.EventHandler(this.OrganizationMenuPanel_Leave);
            this.OrganizationMenuPanel.MouseEnter += new System.EventHandler(this.OrganizationMenuPanel_MouseEnter);
            this.OrganizationMenuPanel.MouseLeave += new System.EventHandler(this.OrganizationMenuPanel_MouseLeave);
            this.OrganizationMenuPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.OrganizationMenuPanel_MouseMove);


Что я уже пробовал:

это работало а теперь его больше нет я не знаю что попробовать

Mehdi Gholam

Что изменилось в вашем окружении?

ezanaw

насколько я могу судить ничего

2 Ответов

Рейтинг:
15

Dave Kreskowiak

В Windows Forms прозрачным это не является. Все, что он делает, - это говорит элементу управления взять на себя передние/задние наземные свойства контейнера, который его содержит.

Например, вы помещаете панель на форму. Если вы установите цвет фона панели прозрачная, группа возьмет на свойства backcolor формы. Это не делает панель прозрачной.

Есть несколько статей и ответов на форуме, которые помогут вам сделать свой собственный псевдопрозрачный элемент управления панелью, не рисуя фон панели. Эта техника может или не может сделать трюк для вас, в зависимости от того, что происходит на вашей форме за вашей панелью управления.

c# - любой трюк, чтобы использовать непрозрачность на панели в форме окна Visual Studio? - переполнение стека[^]
Сделать панель прозрачной[^]


Рейтинг:
1

Prashant Manjule

попробуйте установить фон формы и transparencykey то же самое

this.BackColor = Color.Red;
this.TransparencyKey = Color.Red;
this.FormBorderStyle = FormBorderStyle.None;


Dave Kreskowiak

Вы ведь не читали мой ответ 2-летней давности, не так ли?

Вы также не читали документацию по TransparencyKey. Это относится к формам, а не к элементам управления, таким как панель.