Application.AddMessageFilter : Application « System.Windows.Forms « C# / C Sharp by API






Application.AddMessageFilter

 

using System;
using System.Threading;
using System.Windows.Forms;
   
public class BlockLeftMouseButtonMessageFilter : IMessageFilter
{
    const int WM_LBUTTONDOWN = 0x201;
    
    public bool PreFilterMessage(ref Message m) {
        if(m.Msg == WM_LBUTTONDOWN)
        {
            Exception LeftButtonDownException;
            
            LeftButtonDownException = new Exception("The left mouse button was pressed.");
            Application.OnThreadException(LeftButtonDownException);
            return true;
        }
        return false;
    }
}
   
public class ApplicationEventHandlerClass
{
    public void OnThreadException(object sender, ThreadExceptionEventArgs e)
    {
        Exception LeftButtonDownException;
        
        LeftButtonDownException = e.Exception;
        Console.WriteLine(LeftButtonDownException.Message);
    }
}
   
public class MainForm : Form
{
    public static void Main()
    {
        ApplicationEventHandlerClass AppEvents = new ApplicationEventHandlerClass();
        MainForm MyForm = new MainForm();
        BlockLeftMouseButtonMessageFilter MsgFilter = new BlockLeftMouseButtonMessageFilter();
   
        Application.AddMessageFilter(MsgFilter);
        Application.ThreadException += new ThreadExceptionEventHandler(AppEvents.OnThreadException);
        Application.Run(MyForm);
    }
   
    public MainForm()
    {
        Text = "Application Exception Test";
    }
}

   
  








Related examples in the same category

1.Application.ApplicationExit
2.Application.CompanyName
3.Application.Idle
4.Application.ProductName
5.Application.RemoveMessageFilter
6.Application.Run
7.Application.StartupPath
8.Application.ThreadException
9.Application.ThreadExit