using System;
using System.Drawing;
using System.Windows.Forms;
class TwoButtons: Form
{
readonly Button btnLarger, btnSmaller;
readonly int cxBtn, cyBtn, dxBtn;
public static void Main()
{
Application.Run(new TwoButtons());
}
public TwoButtons()
{
ResizeRedraw = true;
cxBtn = 200;
cyBtn = 100;
dxBtn = 12;
btnLarger = new Button();
btnLarger.Parent = this;
btnLarger.Text = "&Larger";
btnLarger.Size = new Size(cxBtn, cyBtn);
btnLarger.Click += new EventHandler(ButtonOnClick);
btnSmaller = new Button();
btnSmaller.Parent = this;
btnSmaller.Text = "&Smaller";
btnSmaller.Size = new Size(cxBtn, cyBtn);
btnSmaller.Click += new EventHandler(ButtonOnClick);
OnResize(EventArgs.Empty);
}
protected override void OnResize(EventArgs ea)
{
base.OnResize(ea);
btnLarger.Location =
new Point(ClientSize.Width / 2 - cxBtn - dxBtn / 2,
(ClientSize.Height - cyBtn) / 2);
btnSmaller.Location =
new Point(ClientSize.Width / 2 + dxBtn / 2,
(ClientSize.Height - cyBtn) / 2);
}
void ButtonOnClick(object obj, EventArgs ea)
{
Button btn = (Button) obj;
if (btn == btnLarger)
{
Left -= (int)(0.1 * Width);
Top -= (int)(0.1 * Height);
Width += (int)(0.1 * Width);
Height += (int)(0.1 * Height);
}
else
{
Left += (int)(Width / 22f);
Top += (int)(Height / 22f);
Width -= (int)(Width / 11f);
Height -= (int)(Height / 11f);
}
}
}
Month: February 2011
Hit Testing
/*
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.Drawing.Drawing2D;
namespace HitTesting
{
/// <summary>
/// Summary description for HitTesting.
/// </summary>
public class HitTesting : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private System.Windows.Forms.Label label1;
GraphicsPath gP;
string mes = "Move to the big I!";
FontFamily fF = new FontFamily("Times new roman");
public HitTesting()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
CreateFont();
this.Text = "Hit Testing";
this.label1.Font = new Font(fF, 12);
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <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.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(88, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(160, 23);
this.label1.TabIndex = 0;
this.label1.Text = "label1";
//
// HitTesting
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 109);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label1});
this.Name = "HitTesting";
this.Text = "HitTesting";
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.HitTesting_MouseMove);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new HitTesting());
}
void CreateFont()
{
Graphics g = this.CreateGraphics();
label1.Text = mes;
string s = "I";
int fSt = (int)FontStyle.Regular;
Point xy = new Point(50, 10);
StringFormat sFr = StringFormat.GenericDefault;
gP = new GraphicsPath(); // gp is a class member
gP.AddString(s, fF, fSt, 50, xy, sFr); // add the string to the path
}
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
Graphics g = this.CreateGraphics();
g.DrawPath(Pens.Black, gP); // draw the path to the surface
g.Dispose();
}
private void HitTesting_MouseMove(object sender, MouseEventArgs e)
{
Region reg = new Region(gP);
if(reg.IsVisible(new Point(e.X, e.Y)))
mes = "You touched me ...";
else
mes = "Move to the big I!";
CreateFont();
}
}
}
Mouse Handler
/*
GDI+ Programming in C# and VB .NET
by Nick Symmonds
Publisher: Apress
ISBN: 159059035X
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace MouseHandler_c
{
/// <summary>
/// Summary description for Finally_c.
/// </summary>
public class MouseHandler_c : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button Off;
private System.Windows.Forms.Button On;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public MouseHandler_c()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
this.MouseMove += new
System.Windows.Forms.MouseEventHandler(this.MyMouseHandler);
}
/// <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.label1 = new System.Windows.Forms.Label();
this.Off = new System.Windows.Forms.Button();
this.On = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(40, 56);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(176, 16);
this.label1.TabIndex = 0;
this.label1.Text = "label1";
//
// Off
//
this.Off.Location = new System.Drawing.Point(40, 216);
this.Off.Name = "Off";
this.Off.Size = new System.Drawing.Size(72, 24);
this.Off.TabIndex = 1;
this.Off.Text = "Off";
this.Off.Click += new System.EventHandler(this.Off_Click);
//
// On
//
this.On.Location = new System.Drawing.Point(152, 216);
this.On.Name = "On";
this.On.Size = new System.Drawing.Size(72, 24);
this.On.TabIndex = 2;
this.On.Text = "On";
this.On.Click += new System.EventHandler(this.On_Click);
//
// MouseHandler_c
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.On,
this.Off,
this.label1});
this.Name = "MouseHandler_c";
this.Text = "MouseHandler_c";
this.Load += new System.EventHandler(this.MouseHandler_c_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new MouseHandler_c());
}
private void MouseHandler_c_Load(object sender, System.EventArgs e)
{
}
private void MyMouseHandler(object sender,
System.Windows.Forms.MouseEventArgs e)
{
label1.Text = "X= " + e.X.ToString() + ", Y= " + e.Y.ToString();
}
protected override void OnMouseMove( MouseEventArgs e )
{
base.OnMouseMove(e);
}
private void Off_Click(object sender, System.EventArgs e)
{
this.MouseMove -= new
System.Windows.Forms.MouseEventHandler(this.MyMouseHandler);
}
private void On_Click(object sender, System.EventArgs e)
{
this.MouseMove += new
System.Windows.Forms.MouseEventHandler(this.MyMouseHandler);
}
}
}
Full screen and KeyEvent and MouseEvent
// This Article is a simple one to show the usage of KeyEvent and MouseEvent.
// Please move the mouse or press a key to Exit this Program.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace ScreenSave
{
public class KeyEventandMouseEvent : System.Windows.Forms.Form {
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Timer timer1;
private System.ComponentModel.IContainer components;
private Boolean boolFlag;
private int ixStart;
private int iyStart;
public KeyEventandMouseEvent() {
//
// Required for Windows Form Designer support
//
InitializeComponent();
}
/// <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.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// timer1
//
this.timer1.Enabled = true;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// label1
//
this.label1.Font = new System.Drawing.Font("Times New Roman", 14F, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic), System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.label1.ForeColor = System.Drawing.Color.Lime;
this.label1.Location = new System.Drawing.Point(8, 280);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(312, 32);
this.label1.TabIndex = 0;
this.label1.Text = "Roller - Developed in C-Sharp";
this.label1.Click += new System.EventHandler(this.label1_Click);
//
// KeyEventandMouseEvent
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)));
this.ClientSize = new System.Drawing.Size(568, 32);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label1});
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.KeyPreview = true;
this.Name = "KeyEventandMouseEvent";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "KeyEventandMouseEvent";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.OnKeyPressEvent);
this.Load += new System.EventHandler(this.KeyEventandMouseEvent_Load);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.OnMouseMoveEvent);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new KeyEventandMouseEvent());
}
private void timer1_Tick(object sender, System.EventArgs e)
{
int i;
i = label1.Location.X;
if (i >= 750)
i = 0;
else
i = label1.Location.X + 5;
label1.Location = new Point(i,280);
}
private void KeyEventandMouseEvent_Load(object sender, System.EventArgs e)
{
}
private void OnMouseMoveEvent(object sender,MouseEventArgs e)
{
//Application.Exit();
if (ixStart == 0 && iyStart == 0)
{
ixStart = e.X;
iyStart = e.Y;
}
else if (e.X != ixStart || e.Y != iyStart)
Application.Exit();
}
private void OnKeyPressEvent(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
Application.Exit();
}
private void label1_Click(object sender, System.EventArgs e)
{
}
}
}
Mouse move
/*
GDI+ Programming in C# and VB .NET
by Nick Symmonds
Publisher: Apress
ISBN: 159059035X
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
namespace moveme
{
public class moveme : System.Windows.Forms.Form
{
private const int WM_NCLBUTTONDOWN = 0xA1;
[DllImport("user32.dll")]
internal extern static int ReleaseCapture();
[DllImport("user32.dll")]
internal extern static int SendMessageA( IntPtr windowHandle, int wMsg,
int wPAram, int lParam );
private System.ComponentModel.Container components = null;
public moveme()
{
InitializeComponent();
this.MouseMove += new MouseEventHandler(this.MyMouseMove);
}
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()
{
//
// moveme
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Name = "moveme";
this.Text = "moveme";
this.Load += new System.EventHandler(this.moveme_Load);
}
#endregion
[STAThread]
static void Main()
{
Application.Run(new moveme());
}
private void moveme_Load(object sender, System.EventArgs e)
{
}
private void MyMouseMove(object sender, MouseEventArgs e)
{
if (e.Button==MouseButtons.Left)
{
ReleaseCapture();
SendMessageA( this.Handle, WM_NCLBUTTONDOWN, 2, 0);
}
}
}
}
Mouse Buttons Click
/*
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;
namespace Wrox.WindowGUIProgramming.Chapter5
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class frmMouseButtons : System.Windows.Forms.Form
{
private System.Windows.Forms.Label lblLeftClick;
private System.Windows.Forms.Label lblRightClick;
private System.Windows.Forms.Label lblMiddleClick;
private System.Windows.Forms.Label lblHover;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public frmMouseButtons()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
protected override void OnMouseDown(MouseEventArgs e)
{
switch(e.Button)
{
case(MouseButtons.Left):
lblLeftClick.Text = "Left Click";
break;
case(MouseButtons.Middle):
lblLeftClick.Text = "Middle Click";
break;
case(MouseButtons.Right):
lblLeftClick.Text = "Right Click";
break;
case(MouseButtons.XButton1):
lblLeftClick.Text = "XButton1 Click";
break;
case(MouseButtons.XButton2):
lblLeftClick.Text = "XButton2 Click";
break;
}
switch(e.Clicks)
{
case 1:
lblMiddleClick.Text = "Single Click";
break;
case 2:
lblMiddleClick.Text = "Double Click!";
break;
default:
lblMiddleClick.Text = "Many clicks!";
break;
}
}
protected override void OnMouseWheel(MouseEventArgs e)
{
switch(e.Delta)
{
case -360:
lblRightClick.Text = "One Rotation Reverse";
break;
case -720:
lblRightClick.Text = "Two Rotations Reverse";
break;
case 360:
lblRightClick.Text = "One Rotation Forward";
break;
case 720:
lblRightClick.Text = "Two Rotations Forward";
break;
default:
lblRightClick.Text = "Rotation wasn't full turn of wheel";
break;
}
}
#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.lblLeftClick = new System.Windows.Forms.Label();
this.lblRightClick = new System.Windows.Forms.Label();
this.lblMiddleClick = new System.Windows.Forms.Label();
this.lblHover = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblLeftClick
//
this.lblLeftClick.Location = new System.Drawing.Point(8, 8);
this.lblLeftClick.Name = "lblLeftClick";
this.lblLeftClick.TabIndex = 0;
//
// lblRightClick
//
this.lblRightClick.Location = new System.Drawing.Point(8, 32);
this.lblRightClick.Name = "lblRightClick";
this.lblRightClick.Size = new System.Drawing.Size(100, 32);
this.lblRightClick.TabIndex = 1;
//
// lblMiddleClick
//
this.lblMiddleClick.Location = new System.Drawing.Point(8, 72);
this.lblMiddleClick.Name = "lblMiddleClick";
this.lblMiddleClick.TabIndex = 2;
//
// lblHover
//
this.lblHover.Location = new System.Drawing.Point(8, 104);
this.lblHover.Name = "lblHover";
this.lblHover.TabIndex = 3;
this.lblHover.MouseEnter += new System.EventHandler(this.lblHover_MouseEnter);
this.lblHover.MouseHover += new System.EventHandler(this.lblHover_MouseHover);
this.lblHover.MouseLeave += new System.EventHandler(this.lblHover_MouseLeave);
//
// frmMouseButtons
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(184, 198);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.lblHover,
this.lblMiddleClick,
this.lblRightClick,
this.lblLeftClick});
this.MaximizeBox = false;
this.Name = "frmMouseButtons";
this.Text = "MouseButtons";
this.ResumeLayout(false);
}
#endregion
protected void lblHover_MouseEnter(object sender, EventArgs e)
{
lblRightClick.Text = "One Rotation Forward";
lblHover.Text = "Entering label";
Cursor = Cursors.NoMove2D;
}
protected void lblHover_MouseHover(object sender, EventArgs e)
{
lblHover.Text = "Hovering over label";
Cursor = Cursors.Hand;
System.Diagnostics.Debug.WriteLine("hover");
}
protected void lblHover_MouseLeave(object sender, EventArgs e)
{
lblHover.Text = "Leaving label";
Cursor = Cursors.Default;
}
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new frmMouseButtons());
}
}
}
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+"
");
sb.Append("Number of Mouse Buttons: "+SystemInformation.MouseButtons+"
");
sb.Append("Mouse Wheel Present: "+SystemInformation.MouseWheelPresent+"
");
sb.Append("Number of Mouse Wheel scroll lines: "+SystemInformation.MouseWheelScrollLines+"
");
sb.Append("Native wheel support: "+SystemInformation.NativeMouseWheelSupport+"
");
sb.Append("Mouse buttons swapped: "+SystemInformation.MouseButtonsSwapped+"
");
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();
}
}
}

