使表单的点击“穿透”到下面的应用程序

5
我制作了一个透明度为30%的表单,我希望在屏幕上叠加此表单,以便我可以在其上绘制网格,同时仍然能够控制任何在下面运行的程序。因此,我希望我创建的带有网格的表单忽略我的鼠标事件,这样我就可以通过单击到下面的程序,但仍然可以在顶部显示它。
对此有什么想法吗?
1个回答

5

您可以指定透明键颜色,将其设置为某些表单背景颜色的颜色值,以便在单击区域中实现透明效果。此颜色应与所选的网格颜色不同。

这是 VB.Net 代码,转换成 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

它使得内容透明,但不可点击穿透。 - Renatas M.
它确实可以!只需尝试一下,指定为透明的区域是可点击的。 - Rajeev
确实,regexhacks是正确的,我刚试过,点击穿透了 :) - 等我有声誉值后,我会给你点赞。 - Mike
我尝试了一下,将背景颜色设置为红色,并将透明键也设置为红色...当我启动应用程序时,我得到了一个具有透明背景的窗口,但我无法通过点击进行操作 :/ - Renatas M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接