我制作了一个不透明度为30%的表单,我想让它叠加在我的屏幕上,这样我就可以在其上绘制一个网格,同时仍然可以控制下面的任何程序。所以我希望我用网格创建的表单忽略我的鼠标事件,所以我可以点击下面的程序,但仍然显示在顶部。
关于这个的任何想法?
答案 0 :(得分:5)
您可以将Transparent Key
颜色指定为某些颜色值的表格backcolor for clickthru area此颜色应与您选择的网格颜色不同
这是我试过的VB.Net Code应该不难转换为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