2009-02-05 7 views
6

Je me bats pour obtenir mon formulaire pour avoir un fond transparent dans vb.netComment puis-je définir un formulaire pour avoir un fond transparent

Actuellement sous la forme nouvelle que je mis

Me.SetStyle(ControlStyles.SupportsTransparentBackColor, true) 

Mais encore le formulaire apparaît comme ayant le fond gris par défaut

Quelqu'un peut-il aider ??

EDIT: J'ai besoin des contrôles sur le formulaire pour être visible, donc je ne pense pas que la mise en l'opacité à 0 fonctionnera

EDIT: J'ai essayé la solution clé de la transparence, mais il ne fonctionne pas. J'ai une image circulaire avec un fond noir. OnPaint J'ai mis la touche de transparence au pixel img à 0,0, cela me laisse alors avec une image circulaire (ce que je veux) Elle cache le fond noir mais il me reste encore le rectangle gris par défaut du formulaire.

ci-dessous est le code que j'ai -

Public Sub New() 

    Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True) 
    Me.BackColor = Color.Transparent 
    ' This call is required by the Windows Form Designer. 
    InitializeComponent() 

    ' Add any initialization after the InitializeComponent() call. 
    Me.Timer1.Start() 
End Sub 

Private Sub frmWoll_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint 

    Dim img As Bitmap = CType(Me.BackgroundImage, Bitmap) 

    img.MakeTransparent(img.GetPixel(2, 2)) 
    Me.TransparencyKey = img.GetPixel(2, 2) 
End Sub 
+0

J'ai ajouté le code ci-dessous pour obtenir exactement ce que vous recherchez. Si quelque chose de plus est nécessaire s'il vous plaît ajouter un commentaire et je vais mettre à jour le même –

Répondre

11

Utilisez TransparencyKey pour un formulaire transparent.

par ex.

TransparencyKey = Color.Red 
Button1.BackColor = Color.Red 

Maintenant exécutez le formulaire, vous trouverez que le bouton1 a un trou dedans. Donc, en utilisant cette méthode, vous pouvez créer une image de masque dans la peinture pour laquelle la partie doit être transparente et appliquer cette image pour former et voila le formulaire est maintenant transparent.

Editer: Désolé pour la réponse tardive.

suivant est votre code modifié en fonction de vos besoins

Public Sub New() 

    Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True) 
    Me.BackColor = Color.Transparent 

    ' This call is required by the Windows Form Designer. 
    InitializeComponent() 
    ' Add any initialization after the InitializeComponent() call. 
    Dim img As Bitmap = CType(Me.BackgroundImage, Bitmap) 

    'img.MakeTransparent(img.GetPixel(2, 2)) 
    Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
    Me.TransparencyKey = img.GetPixel(2, 2) 
End Sub 
+0

Alors que cela peut-être un ancien poste, top google résultat .. Un exemple raccourci qui peut fonctionner pour certaines personnes est simplement ce 'TransparencyKey = Me.BackColor' .. Mais assurez-vous que votre formulaire backcolor n'est pas dans l'image de votre utilisation ou toute autre contrôles sur le formulaire .. Toujours définir votre backcolor de formulaire pour avoir une couleur unqiue – Mayhem

-2
Me.Opacity = 0 

averti que:

  1. Ceci est pour la forme entière, plutôt que l'arrière-plan. Il y a des solutions pour rendre certaines parties plus opaques.
  2. C'est seulement la pseudo-transparence où l'on prend un instantané de ce qu'il y a derrière. Il est assez intelligent pour savoir quand vous déplacez le formulaire, mais pas quand vous déplacez d'autres objets transparents au-dessus du formulaire.
+0

Cela va également cacher tous les éléments de contrôle sur le formulaire. – Ahmad

1

Il y a quelques méthodes que vous pouvez utiliser.

  • Utilisez les formes TransparencyKey
  • Remplacer OnPaintBackground (WM_ERASEBKGND)
  • Remplacer WndProc et de gérer les messages de peinture (WM_NCPAINT, WM_PAINT, etc.)

Je recommande redéfinissant la procédure de fenêtre pour obtenir optimale résultats.

2

Définissez la propriété de couleur TransparencyKey du formulaire comme la propriété de couleur de fond du formulaire

Questions connexes