2011-06-21 30 views
5

Tôi đã tạo biểu mẫu có độ mờ là 30% và tôi muốn lớp phủ này trên màn hình của mình để tôi có thể vẽ lưới trên đó trong khi vẫn có thể kiểm soát bất kỳ chương trình nào bên dưới. Vì vậy, tôi muốn các hình thức tôi tạo ra với lưới điện để bỏ qua các sự kiện chuột của tôi, vì vậy tôi có thể nhấp qua để chương trình bên dưới nhưng vẫn còn có nó hiển thị trên đầu trang.Thực hiện các nhấp chuột của Biểu mẫu "rơi qua" đến ứng dụng bên dưới

Bất kỳ ý tưởng nào về vấn đề này?

Trả lời

5

Bạn có thể chỉ định Transparent Key màu để một số giá trị màu sắc của các hình thức backcolor cho khu vực clickthru màu này nên khác biệt so với lưới màu bạn chọn

Đây là VB.Net Mã Tôi cố gắng không nên khó khăn để chuyển sang 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

Làm cho minh bạch, không phải nhấp qua – Reniuz

+0

! chỉ cần thử nó khu vực được chỉ định là minh bạch là clickthru – CodeWrite

+0

Thực sự regexhacks là chính xác, tôi chỉ mệt mỏi nó ra các nhấp chuột rơi qua :) - Tôi sẽ bỏ phiếu cho câu trả lời của bạn khi tôi nhận được các đại diện để làm điều đó. – Mike

Các vấn đề liên quan