Question

Je tente de créer un formulaire semi-transparent qui s'affiche dans un panneau. Je peux afficher le formulaire dans le panneau, mais la propriété opacity ne fonctionnera pas et le formulaire n'est pas transparent.

private void button1_Click(object sender, EventArgs e)
{
      Form fr = new Form();
      fr.FormBorderStyle = FormBorderStyle.None;
      fr.BackColor = Color.Black;
      fr.TopLevel = false;
      fr.Opacity = 0.5;
      this.panel1.Controls.Add(fr);
      fr.Show();
}

des idées comment je peux gérer ça? Merci pour vos réponses!

Était-ce utile?

La solution

Winforms ne prend en charge que la transparence partielle pour les formulaires de niveau supérieur. Si vous souhaitez créer une application avec des éléments d'interface utilisateur partiellement transparents, vous devez utiliser WPF ou gérer vous-même tous les dessins. Désolé d'être le porteur de mauvaises nouvelles.

Autres conseils

Votre formulaire est ajouté en tant que contrôle enfant de panel1, qui est enfant du formulaire principal, dont l'opacity est par défaut Opacity = 1.

Pour voir l'opacité au travail, essayez ceci:

private void button1_Click(object sender, EventArgs e)
{
    Form fr = new Form();
    fr.FormBorderStyle = FormBorderStyle.None;
    fr.BackColor = Color.Blue;
    fr.TopLevel = false;
    //fr.Opacity = 0.5;
    this.Opacity = 0.5; // add this
    this.panel1.Controls.Add(fr);
    fr.Show();
}

Je suppose que vous souhaitez que le panneau ait un aspect semi-transparent, vous devez utiliser une autre méthode et utiliser le formulaire lui-même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top