c#
Making a transparent/Click-throughable VB.net form clickable with a toggle
So I was working on a transparent add-on VB.net program that will be clickable only if you click shift. E.g. It will just stay there but clicks will go through it unless I hold shift f.e I saw this and tested the codes, VB.net Click through form However I tried to change some controls but none are able to give me a kind of "toggle". Any clue of what I can fix for it? Answers in C# are welcome as well as I can program C# instead if it is not do-able in VB Edit: Code I have been trying to use is this Imports System.Runtime.InteropServices Public Class Form1 Private InitialStyle As Integer Dim PercentVisible As Decimal Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load InitialStyle = GetWindowLong(Me.Handle, -20) PercentVisible = 0.8 SetWindowLong(Me.Handle, -20, InitialStyle Or &H80000 Or &H20) SetLayeredWindowAttributes(Me.Handle, 0, 255 * PercentVisible, &H2) Me.BackColor = Color.Red Me.TopMost = True End Sub <DllImport("user32.dll", EntryPoint:="GetWindowLong")> Public Shared Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Integer End Function <DllImport("user32.dll", EntryPoint:="SetWindowLong")> Public Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer End Function <DllImport("user32.dll", EntryPoint:="SetLayeredWindowAttributes")> Public Shared Function SetLayeredWindowAttributes(ByVal hWnd As IntPtr, ByVal crKey As Integer, ByVal alpha As Byte, ByVal dwFlags As Integer) As Boolean End Function End Class
I found the color to make all the difference; afaik this is a legacy bug/feature we can make use of. Here is a minimal example: public Form1() { InitializeComponent(); BackColor = Color.FromArgb(123,234,34); TransparencyKey = BackColor; Text = "Click Me!"; KeyPreview = true; } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.Shift) { BackColor = Color.Fuchsia; TransparencyKey = BackColor; Text = "Click Through!"; } } private void Form1_KeyUp(object sender, KeyEventArgs e) { BackColor = Color.FromArgb(123,234,34); TransparencyKey = BackColor; Text = "Click Me!"; }
Related Links
UWP StreamSocket App closes after connection
Update Duplicated Items In list View
UI thread blocks my window, How to change that? [closed]
c# optional parameters in constructor [duplicate]
Show object in front of the player always
deserializing JSON object with nested fields, results
How do I create FIX partyID group?
Find User Outside of ActionResult Methods
How to handle LongPressed event of a Zebble view or control
Printing PDF lables to a Zebra printer (420d)
Serialize JSON using DataAnnotation to apply decimal formatting rules
Function in update is called only once
Xamarin Studio Community Test Recoder
C# WPF DataGrid: DataGridComboxBoxColumn Binding ItemsSource failed
Apache Ignite SQL query composed primary key NET
Logging exception in WebAPI