2009-04-29 8 views
0

Ich versuche, Transparenzschlüssel zu verwenden. Laut der Dokumentation sollen Sie damit in der Lage sein, "Löcher" in die Anwendung zu setzen, wo Sie in der Lage sein sollten, durch die transparenten Bereiche in der Anwendung zu klicken und zu arbeiten (zB "Klick" auf Dinge) dahinter). In Vista Ultimate 64bit kann ich jedoch nicht. Der folgende Code funktioniert nicht in Vista, aber in XP Pro.Transparenzschlüssel und Vista

 
Public Class Form1 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Me.BackColor = Color.Red 
     Me.TransparencyKey = Me.BackColor 
    End Sub 
End Class 

Hat jemand irgendwelche Leitungen, warum Win XP arbeitet mit diesem Code, während Win Vista nicht einem erlaubt durch das Loch in dem Fenster zu klicken?

Antwort

1

Ich weiß, dass dies keinen Sinn macht. Aber es funktioniert für mich. Was ich tat, war stattdessen die Farbe der Referenzierung mit Mr.BackColor, habe ich nur die Farbe wieder, wie folgt aus:

Public Class Form1 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Me.BackColor = Color.Red 
     Me.TransparencyKey = Color.Red 
    End Sub 
End Class 

macht diese Arbeit für Sie?

+0

Verwenden Sie ein 32-Bit-Betriebssystem? Ich scheine nur den Fehler auf 64-Bit-Versionen von Windows zu sehen. – caschw

+0

Ich habe kürzlich einen neuen Computer gekauft und diesen Beitrag heute noch einmal besucht. Ich kann bestätigen, dass dies nicht auf 64-Bit-Version von Windows 7 - Home Premium funktioniert. Zum Zeitpunkt der Veröffentlichung meiner Antwort funktionierte es jedoch unter Windows 7 Home Premium ** und ** Windows Vista Home Basic, die beide auf 32-Bit-Computern ausgeführt wurden. –