protected virtual void OnMessage(NativeMessageArgs e)
 {
     if (Message != null)
     {
         Message(this, e);
     }
 }
        protected override void WndProc(ref Message m)
        {
            try
            {
                var e = new NativeMessageArgs {
                    Message = m, Cancel = false
                };

                OnMessage(e);

                if (!e.Cancel)
                {
                    base.WndProc(ref m);
                }
            }
            catch (Exception x)
            {
                Console.WriteLine(x.Message);
            }
        }