2011-06-21 7 views
5

Zrobiłem formularz z kryciem wynoszącym 30% i chcę, aby to było nakładane na mój ekran, aby można było narysować na nim siatkę, a jednocześnie móc kontrolować wszelkie programy pod spodem. Dlatego chcę, aby utworzony przeze mnie formularz z siatką ignorował moje zdarzenia myszy, więc mogę przejść do programu pod spodem, ale nadal mam to wyświetlane na wierzchu.Spraw, aby kliknięcia w formularzu "spadły" do aplikacji poniżej:

Jakieś pomysły na ten temat?

Odpowiedz

5

Można określić Transparent Key Kolor do jakiejś wartości koloru form backcolor dla obszaru clickthru ten kolor powinien być inny niż kolor siatki wybrać

Jest to kod VB.Net Próbowałem nie powinno być trudne do konwersji do C#

Private Sub frmTest_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint 
    Dim rc As Rectangle = New Rectangle(0, 0, Me.Width - 1, Me.Height - 1) 
    Using br As New Drawing2D.HatchBrush(Drawing2D.HatchStyle.Cross, Color.Silver, Color.Transparent) 
     e.Graphics.FillRectangle(br, rc) 
    End Using 
End Sub 

Private Sub frmTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Me.TopMost = True : Me.Opacity = 10% : Me.WindowState = FormWindowState.Maximized 
    Me.BackColor = Color.White 
    Me.TransparencyKey = Color.White 
    Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
End Sub 
+0

Sprawia, że ​​przezroczyste, nie klikaj przez – Reniuz

+0

, to robi! po prostu spróbuj tego obszaru określonego jako przezroczysty jest clickthru – CodeWrite

+0

Rzeczywiście regexhacks jest poprawny, po prostu zmęczony go kliknięcia spadają przez :) - Będę głosować w górę twoją odpowiedź, gdy dostanę rep, aby to zrobić. – Mike

Powiązane problemy