我制作了一个透明度为30%的表单,我希望在屏幕上叠加此表单,以便我可以在其上绘制网格,同时仍然能够控制任何在下面运行的程序。因此,我希望我创建的带有网格的表单忽略我的鼠标事件,这样我就可以通过单击到下面的程序,但仍然可以在顶部显示它。
对此有什么想法吗?
对此有什么想法吗?
您可以指定透明键
颜色,将其设置为某些表单背景颜色的颜色值,以便在单击区域中实现透明效果。此颜色应与所选的网格颜色不同。
这是 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