2009-10-23 7 views
0

Je tente de créer un formulaire semi-transparent qui est affiché dans un panneau. Je peux afficher le formulaire dans le panneau, mais la propriété opacité ne fonctionne pas et le formulaire est non transparent.C# Formulaire transparent dans le panneau

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 cela? Merci pour vos réponses!

Répondre

3

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 tout le dessin. Désolé d'être le porteur de mauvaises nouvelles.

+3

La vérité fait parfois mal: P –

0

Votre formulaire est ajouté en tant que contrôle enfant de panel1 qui est l'enfant de la forme principale qui est par défaut Opacité = 1.

Pour voir 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(); 
} 

I supposez que vous voulez que le panneau apparaisse semi-transparent, vous devez utiliser une autre méthode et travailler avec le formulaire lui-même. Winforms ne prend en charge que la transparence partielle pour les formulaires de niveau supérieur

Questions connexes