Es scheint hier eine ähnliche Frage zu sein, aber mit dem "entgegengesetzten" Problem (Er wollte keine Mausereignisse erfassen).(C#) Windows Forms - Transparenter Hintergrund beim Erfassen von Mausereignissen?
Ich habe ein Formular mit einem Panel. Das Fenster ist grenzenlos und auf die exakte Größe des Panels eingestellt (in jeder Hinsicht ist es so, als wäre das Panel "frei schwebend"). Ich kann die BackColor des Bedienfelds auf SystemColors.Control festlegen und dann den TransparencyKey des Fensters auf denselben Wert einstellen. Dies funktioniert, indem es den gewünschten Effekt (Transparenz) erreicht, aber das Panel kann keine Mausereignisse mehr erfassen (was für die Funktionalität entscheidend ist)!
Gibt es einen anderen Weg, um die Mauserfassung wieder zu aktivieren?
Ich habe versucht, das OnPaintBackground zu überschreiben und einen Noop zu machen, aber das hat keine echte Transparenz erreicht, da der Hintergrund nach jedem Tick nicht aktualisiert wird (also bleibt egal, was hinter dem Panel bei der ersten Ziehung ist) Sie bewegen das Panel oder aktualisieren es auf andere Weise). Es ermöglichte dem Panel jedoch, Mausereignisse zu erfassen.
Das ist in diesem Stadium des Projekts nicht besonders mühsam, aber ich bin während eines schnellen Prototyps über das Problem gestolpert und es nervt mich jetzt. Wenn jemand irgendwelche Hinweise hat, würden sie sehr geschätzt werden.
Hallo ChrisBD - danke für deine Hilfe. Die obige Methode 'Art von' hat funktioniert. Ich werde weiter damit experimentieren und schauen, ob ich es schaffen kann. Danke nochmal! – Beardy
gleiches Problem! Bitte aktualisieren Sie das Thema, wenn Sie die Lösung gefunden haben! – Pedro77