• 0

vb.net trap mouse click


Question

Hello folks!

I've been looking for a way to act on a mouse click that is performed anywhere on a form. As an example, is there any way that I could get a msgbox to pop up if the righ mouse button is clicked anywhere on a form, even if it is on a control?

Thanks guys. :)

Link to comment
https://www.neowin.net/forum/topic/236949-vbnet-trap-mouse-click/
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Here you go

Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown

Select Case e.Button

Case MouseButtons.Left

MsgBox("LEFT")

Case MouseButtons.Right

MsgBox("RIGHT")

Case MouseButtons.Middle

MsgBox("MIDDLE")

End Select

End Sub

  • 0
  petroid said:
That code works for a blank form, but it doesn't affect a groupbox or mozilla control... Any other suggestions? :)

584826099[/snapback]

someone correct me if i'm wrong, but i don't think there's a simple way to do this.

but one method would be to hook all of the _Click events of the controls into the same handler as the form (you can have it hooked into multiple places so it doesn't interfere with the other functionality) and that might work.

  • 0

You are correct. There is no simple way to do this, as each control has it's own functions/methods. The control is on top of the form and there is no way to have a mouse event call the form's mouse event UNLESS you specifically have the control's Mouse event call the form's mouse event.

I guess the real question is WHY would a person want this functionality. What sort of issue are you trying to deal with and why would you want a generic event to happen for all controls. (hey, there could be a reason... *I* just don't know of one)

  • 0

If you wanted, you could try this..... but you'd have to add each thing in your form.

   Private Sub Universal_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles _
    Button1.MouseDown, Label1.MouseDown, MyBase.MouseDown, TextBox1.MouseDown
        MsgBox("Hello!")
    End Sub

  • 0

Ok heres an example :)

//Doing this will block all mouseup messages to button1
Application.AddMessageFilter(new MessageFilter(button1.Handle, 0x0205 /*WM_RBUTTONUP (Right mouse button up!*/));


......


	public class MessageFilter : IMessageFilter
	{
 ?public MessageFilter(IntPtr handle, int msg)
 ?{
 ?	Handle = handle;
 ?	Msg = msg;
 ?}

 ?private IntPtr Handle;
 ?private int Msg;

 ?public bool PreFilterMessage(ref Message m)
 ?{
 ?	if (m.HWnd == Handle)
 ?	{
 ? ?if (m.Msg == Msg)
 ? ?{
 ? ?	return true;
 ? ?}
 ?	}
 ?	return false;
 ?}
	}

Dan

Edited by dannyres
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Mozilla really needed to focus on their core product for a while now. I will not mourn the death of pocket or AI garbage. One thing they don't do that I believe they should is advertise more, and not just to their core audience, especially their additional services. Let people know they actually exist.
    • Is this like tailscale?
    • I had no idea you could do this, thanks for the heads up!
    • Bonkers, really, when you think about the resources at Meta’s disposal.
    • You can now use Gemini in Google Forms to summarize responses by David Uzondu Over the last few months, Google has been aggressively pushing its Gemini AI into every corner of its Workspace apps, like generating entire documents from a prompt in Google Docs or creating fully editable charts in Sheets. Now, the company has set its sights on Google Forms. The latest update introduces a feature that uses Gemini to summarize text-based responses automatically. For any form with short-answer or paragraph questions, a new "Summarize responses" button will appear in the Responses tab once you collect more than three entries. Clicking it prompts Gemini to read the form's title, questions, and all the submitted text to spit out a summary of the key themes. Though Google bills this as a fresh expansion into Forms, we have actually had some Gemini intelligence in the app for a bit through the "Help me create a form" button. That feature, which drafts questions for you, was rolled out through the company's Workspace Labs program. For those unaware, Workspace Labs is basically Google's public testing ground, available in select countries, for new, and sometimes unproven, AI tools before a general release. Once a summary is generated, you can copy it to use elsewhere or hit "Retry" to see if Gemini comes up with a different take. If new responses roll in after you have generated a summary, you can click a "Refresh" button to update it with the latest data. For now, this feature is only available in English, and to use it, you'll need access to a paid Google Workspace plan, such as Business Standard, Business Plus, Enterprise Standard, or Enterprise Plus. It is also available to customers who pay for the Google AI Pro and Ultra plans or specific Gemini Education add-ons. The feature has started rolling out gradually, for Rapid Release domains, and will begin rolling out for Scheduled Release domains on June 26.
  • Recent Achievements

    • Week One Done
      Food-Beverages-Nutrition earned a badge
      Week One Done
    • Week One Done
      Tech Dogs earned a badge
      Week One Done
    • Enthusiast
      computerdave91111 went up a rank
      Enthusiast
    • Week One Done
      Falisha Manpower earned a badge
      Week One Done
    • One Month Later
      elsa777 earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      529
    2. 2
      ATLien_0
      272
    3. 3
      +FloatingFatMan
      199
    4. 4
      +Edouard
      199
    5. 5
      snowy owl
      138
  • Tell a friend

    Love Neowin? Tell a friend!