Question

J'ai créé un panneau et je l'ai configuré pour remplir l'écran. Désormais, je peux voir les fenêtres situées en dessous, mais je veux que ce soit cliqué, ce qui signifie qu'ils peuvent cliquer sur un fichier ou voir l'info-bulle d'un autre objet à travers la transparence.

  
    

RE: C'est peut-être trop évident, mais avez-vous déjà essayé d'envoyer le panneau à l'arrière en cliquant avec le bouton droit de la souris et en choisissant "Envoyer à l'arrière-plan"?

  

Je veux dire comme le bureau ou Firefox, pas quelque chose dans mon projet.

Était-ce utile?

La solution

Il est très facile de créer un formulaire de niveau supérieur transparent. Faites-le simplement remplir l’écran ou la zone requise et définissez-le avec une couleur TransparenyKey et un BackColor de la même valeur.

Le faire pour ignorer la souris est assez simple, il vous suffit de remplacer le WndProc et d'indiquer au WM_HITTEST que toutes les positions de la souris doivent être traitées comme transparentes. Ainsi, la souris interagit avec tout ce qui se trouve sous la fenêtre. Quelque chose comme ça ...

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == (int)WM_NCHITTEST)
            m.Result = (IntPtr)HTTRANSPARENT;
        else
            base.WndProc(ref m);
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top