使表单的点击“落实”到下面的应用程序

时间:2011-06-21 09:46:05

标签: c# .net winforms

我制作了一个不透明度为30%的表单,我想让它叠加在我的屏幕上,这样我就可以在其上绘制一个网格,同时仍然可以控制下面的任何程序。所以我希望我用网格创建的表单忽略我的鼠标事件,所以我可以点击下面的程序,但仍然显示在顶部。

关于这个的任何想法?

1 个答案:

答案 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