Mouse Movement : Mouse Event « Event « C# / C Sharp





Mouse Movement

Mouse Movement
/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury, 
   Zach Greenvoss, Shripad Kulkarni, Neil Whitlow

Publisher: Peer Information
ISBN: 1861007663
*/

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Text;

namespace Wrox.ProgrammingWindowsGUI.Chapter5
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class MouseMovement : System.Windows.Forms.Form
    {
        private System.Windows.Forms.TextBox txtMouseInfo;
        private System.Windows.Forms.Button btTrackMouseOn;
        private System.Windows.Forms.Button btTrackMouseOff;
        private bool toggleMouse = false;
        private Timer tCheckMouse = new Timer();
        private System.Windows.Forms.Button btScreenTrack;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;

        public MouseMovement()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
            txtMouseInfo.Text = GetMouseInfo().ToString();
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null) 
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
         this.txtMouseInfo = new System.Windows.Forms.TextBox();
         this.btTrackMouseOn = new System.Windows.Forms.Button();
         this.btTrackMouseOff = new System.Windows.Forms.Button();
         this.btScreenTrack = new System.Windows.Forms.Button();
         this.SuspendLayout();
         // 
         // txtMouseInfo
         // 
         this.txtMouseInfo.Multiline = true;
         this.txtMouseInfo.Name = "txtMouseInfo";
         this.txtMouseInfo.ReadOnly = true;
         this.txtMouseInfo.Size = new System.Drawing.Size(432, 320);
         this.txtMouseInfo.TabIndex = 0;
         this.txtMouseInfo.Text = "";
         this.txtMouseInfo.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Control_MouseMove);
         // 
         // btTrackMouseOn
         // 
         this.btTrackMouseOn.Location = new System.Drawing.Point(16, 328);
         this.btTrackMouseOn.Name = "btTrackMouseOn";
         this.btTrackMouseOn.Size = new System.Drawing.Size(192, 23);
         this.btTrackMouseOn.TabIndex = 1;
         this.btTrackMouseOn.Text = "Start Track Mouse";
         this.btTrackMouseOn.Click += new System.EventHandler(this.btTrackMouseOn_Click);
         this.btTrackMouseOn.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Control_MouseMove);
         // 
         // btTrackMouseOff
         // 
         this.btTrackMouseOff.Location = new System.Drawing.Point(232, 328);
         this.btTrackMouseOff.Name = "btTrackMouseOff";
         this.btTrackMouseOff.Size = new System.Drawing.Size(184, 23);
         this.btTrackMouseOff.TabIndex = 2;
         this.btTrackMouseOff.Text = "Stop Track Mouse";
         this.btTrackMouseOff.Click += new System.EventHandler(this.btTrackMouseOff_Click_1);
         this.btTrackMouseOff.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Control_MouseMove);
         // 
         // btScreenTrack
         // 
         this.btScreenTrack.Location = new System.Drawing.Point(16, 360);
         this.btScreenTrack.Name = "btScreenTrack";
         this.btScreenTrack.Size = new System.Drawing.Size(400, 23);
         this.btScreenTrack.TabIndex = 3;
         this.btScreenTrack.Text = "Start Screen wide mouse tracking";
         this.btScreenTrack.Click += new System.EventHandler(this.btScreenTrack_Click);
         // 
         // MouseMovement
         // 
         tCheckMouse.Tick += new EventHandler(Timer_Check);
         tCheckMouse.Enabled = true;
         tCheckMouse.Stop();
         
         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
         this.ClientSize = new System.Drawing.Size(432, 390);
         this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                      this.btScreenTrack,
                                                                      this.btTrackMouseOff,
                                                                      this.btTrackMouseOn,
                                                                      this.txtMouseInfo});
         this.MaximizeBox = false;
         this.Name = "MouseMovement";
         this.Text = "Mouse Movement";
         this.ResumeLayout(false);

      }
        #endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() 
        {
            Application.Run(new MouseMovement());
        }

        private StringBuilder GetMouseInfo()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("Mouse Present: "+SystemInformation.MousePresent+"\r\n");
            sb.Append("Number of Mouse Buttons: "+SystemInformation.MouseButtons+"\r\n");
            sb.Append("Mouse Wheel Present: "+SystemInformation.MouseWheelPresent+"\r\n");
            sb.Append("Number of Mouse Wheel scroll lines: "+SystemInformation.MouseWheelScrollLines+"\r\n");
            sb.Append("Native wheel support: "+SystemInformation.NativeMouseWheelSupport+"\r\n");
            sb.Append("Mouse buttons swapped: "+SystemInformation.MouseButtonsSwapped+"\r\n");
            return sb;
        }

        private void btTrackMouseOn_Click(object sender, System.EventArgs e)
        {
            toggleMouse = true;
            tCheckMouse.Stop();
        }

        protected override void OnMouseMove(MouseEventArgs e)
        {
            CheckMousePosition(e, null);
        }

        protected void Control_MouseMove(object sender, MouseEventArgs e)
        {
            CheckMousePosition(e, sender);
        }

        private void CheckMousePosition(MouseEventArgs e, object control)
        {
            if(control==null)
            {
                if(toggleMouse) txtMouseInfo.Text = "x: "+e.X+", y:"+e.Y;
            }
            else
            {
                int left = e.X+((Control)control).Left;
                int top = e.Y+((Control)control).Top;
                if(toggleMouse) txtMouseInfo.Text = "x: "+left+", y:"+top;
            }
        }

        private void btTrackMouseOff_Click(object sender, System.EventArgs e)
        {
            toggleMouse = false;
            txtMouseInfo.Text = GetMouseInfo().ToString();
        }

        private void Timer_Check(object sender, EventArgs e)
        {
         Point pMousePosition = Control.MousePosition;
            txtMouseInfo.Text = "x: "+pMousePosition.X+", y:"+pMousePosition.Y;
        }

        private void btScreenTrack_Click(object sender, System.EventArgs e)
        {
            toggleMouse = false;
            tCheckMouse.Start();
        }

        private void btTrackMouseOff_Click_1(object sender, System.EventArgs e)
        {
            toggleMouse = false;
            txtMouseInfo.Text = GetMouseInfo().ToString();
        }
    }
}

           
       










Related examples in the same category

1.Which mouse button was clicked?
2.Mouse left click, right click, middle click, hoverMouse left click, right click, middle click, hover
3.Register Form Mouse Move, down and up actionRegister Form Mouse Move, down and up action
4.Block Mouse
5.Mouse Enter actionMouse Enter action
6.Mouse Exit actionMouse Exit action
7.Mouse click actionMouse click action
8.Mouse Hover actionMouse Hover action
9.Mouse Down actionMouse Down action
10.Mouse up actionMouse up action
11.Mouse Double Click eventMouse Double Click event
12.Handle Mouse click event on an ImageHandle Mouse click event on an Image
13.Catch Mouse Click event inside a strange shapeCatch Mouse Click event inside a strange shape
14.Mouse Buttons ClickMouse Buttons Click
15.Mouse moveMouse move
16.Full screen and KeyEvent and MouseEvent
17.Mouse HandlerMouse Handler
18.Hit TestingHit Testing