// 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) { } } }
Displays a key pressed by the user
using System.Drawing; using System; using System.Windows.Forms; public class TryKey : Form { private char theKey = 'd'; public TryKey() { Size = new Size(300,200); BackColor = Color.White; } protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString(theKey.ToString(), new Font("Arial", 36, FontStyle.Bold), Brushes.Red, 100, 50); base.OnPaint(e); } protected override void OnKeyDown(KeyEventArgs e){ if (e.Control){ Console.WriteLine("Control"); } if (e.KeyCode == Keys.Right){ Console.WriteLine("Right"); } else if (e.KeyCode == Keys.Left){ Console.WriteLine("Left"); } Invalidate(); base.OnKeyDown(e); } protected override void OnKeyUp(KeyEventArgs e) { Console.WriteLine("Key Up"); base.OnKeyUp(e); } protected override void OnKeyPress(KeyPressEventArgs e) { if (char.IsLetterOrDigit(e.KeyChar)){ theKey = e.KeyChar; } Invalidate(); base.OnKeyPress(e); } public static void Main() { Application.Run(new TryKey()); } }
Displaying information about the key the user pressed
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class KeyDemo : System.Windows.Forms.Form { private System.Windows.Forms.Label charLabel; private System.Windows.Forms.Label keyInfoLabel; public KeyDemo() { InitializeComponent(); } private void InitializeComponent() { this.charLabel = new System.Windows.Forms.Label(); this.keyInfoLabel = new System.Windows.Forms.Label(); this.SuspendLayout(); this.charLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); this.charLabel.Location = new System.Drawing.Point(8, 8); this.charLabel.Name = "charLabel"; this.charLabel.Size = new System.Drawing.Size(168, 32); this.charLabel.TabIndex = 0; this.keyInfoLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); this.keyInfoLabel.Location = new System.Drawing.Point(8, 56); this.keyInfoLabel.Name = "keyInfoLabel"; this.keyInfoLabel.Size = new System.Drawing.Size(168, 136); this.keyInfoLabel.TabIndex = 0; this.AutoScaleBaseSize = new System.Drawing.Size(15, 37); this.ClientSize = new System.Drawing.Size(184, 197); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.keyInfoLabel,this.charLabel}); this.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F); this.Name = "Key Demo"; this.Text = "Key Demo"; this.KeyDown +=new System.Windows.Forms.KeyEventHandler(this.KeyDemo_KeyDown ); this.KeyPress +=new System.Windows.Forms.KeyPressEventHandler(this.KeyDemo_KeyPress ); this.KeyUp +=new System.Windows.Forms.KeyEventHandler(this.KeyDemo_KeyUp ); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run( new KeyDemo() ); } protected void KeyDemo_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e ) { charLabel.Text = "Key pressed: " + e.KeyChar; } private void KeyDemo_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e ) { keyInfoLabel.Text = "Alt: " + (e.Alt ? "Yes" : "No") + ' ' + "Shift: " + (e.Shift ? "Yes" : "No" ) + ' ' + "Ctrl: " + (e.Control ? "Yes" : "No" ) + ' ' + "KeyCode: " + e.KeyCode + ' ' + "KeyData: " + e.KeyData + ' ' + "KeyValue: " + e.KeyValue; } private void KeyDemo_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e ) { Console.WriteLine("Key up"); } }
Get Key action information
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form { private System.Windows.Forms.GroupBox GroupBox1; private System.Windows.Forms.Label Label4; private System.Windows.Forms.Label Label1; private System.Windows.Forms.PictureBox pic; private System.Windows.Forms.TextBox txt; private System.Windows.Forms.Button cmd; private System.Windows.Forms.Label Label2; private System.Windows.Forms.Label Label3; private System.Windows.Forms.ListBox eventLogList; public Form1() { InitializeComponent(); } private void Log(String data) { eventLogList.Items.Add(data); int itemsPerPage = (int)(eventLogList.Height / eventLogList.ItemHeight); eventLogList.TopIndex = eventLogList.Items.Count - itemsPerPage; } private void txt_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { Log("Key Down: " + e.KeyCode.ToString() + e.KeyValue.ToString()); } private void txt_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { Log("Key Press: " + e.KeyChar.ToString()); } private void txt_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) { Log("Key Up: " + e.KeyCode.ToString() + e.KeyValue.ToString() + " Text is: " + txt.Text); } private void txt_TextChanged(object sender, System.EventArgs e) { Log("Changed: " + " Text is: " + txt.Text); } private void pic_MouseEnter(object sender, System.EventArgs e) { Log("Mouse Enter"); } private void pic_MouseHover(object sender, System.EventArgs e) { Log("Mouse Hover"); } private void pic_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { Log("Mouse Down: X=" + e.X.ToString() + " Y=" + e.Y.ToString() + " Button=" + e.Button.ToString()); } private void pic_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { Log("Mouse Up: X=" + e.X.ToString() + " Y=" + e.Y.ToString() + " Button=" + e.Button.ToString()); } private void pic_Click(object sender, System.EventArgs e) { Log("Click"); } private void pic_DoubleClick(object sender, System.EventArgs e) { Log("Double Click"); } private void pic_MouseLeave(object sender, System.EventArgs e) { Log("Mouse Leave"); } private void InitializeComponent() { this.GroupBox1 = new System.Windows.Forms.GroupBox(); this.Label4 = new System.Windows.Forms.Label(); this.Label1 = new System.Windows.Forms.Label(); this.pic = new System.Windows.Forms.PictureBox(); this.txt = new System.Windows.Forms.TextBox(); this.cmd = new System.Windows.Forms.Button(); this.Label2 = new System.Windows.Forms.Label(); this.Label3 = new System.Windows.Forms.Label(); this.eventLogList = new System.Windows.Forms.ListBox(); this.GroupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pic)).BeginInit(); this.SuspendLayout(); // // GroupBox1 // this.GroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.GroupBox1.Controls.Add(this.Label4); this.GroupBox1.Controls.Add(this.Label1); this.GroupBox1.Controls.Add(this.pic); this.GroupBox1.Controls.Add(this.txt); this.GroupBox1.Controls.Add(this.cmd); this.GroupBox1.Controls.Add(this.Label2); this.GroupBox1.FlatStyle = System.Windows.Forms.FlatStyle.System; this.GroupBox1.Location = new System.Drawing.Point(7, 0); this.GroupBox1.Name = "GroupBox1"; this.GroupBox1.Size = new System.Drawing.Size(384, 148); this.GroupBox1.TabIndex = 12; this.GroupBox1.TabStop = false; // // Label4 // this.Label4.Location = new System.Drawing.Point(92, 108); this.Label4.Name = "Label4"; this.Label4.Size = new System.Drawing.Size(56, 16); this.Label4.TabIndex = 5; this.Label4.Text = "And here:"; // // Label1 // this.Label1.Location = new System.Drawing.Point(6, 24); this.Label1.Name = "Label1"; this.Label1.Size = new System.Drawing.Size(144, 16); this.Label1.TabIndex = 2; this.Label1.Text = "Test keyboard events here:"; // // pic // this.pic.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.pic.Location = new System.Drawing.Point(156, 48); this.pic.Name = "pic"; this.pic.Size = new System.Drawing.Size(192, 48); this.pic.TabIndex = 3; this.pic.TabStop = false; this.pic.DoubleClick += new System.EventHandler(this.pic_DoubleClick); this.pic.Click += new System.EventHandler(this.pic_Click); this.pic.MouseHover += new System.EventHandler(this.pic_MouseHover); this.pic.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pic_MouseUp); this.pic.MouseEnter += new System.EventHandler(this.pic_MouseEnter); this.pic.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pic_MouseDown); // // txt // this.txt.Location = new System.Drawing.Point(156, 20); this.txt.Name = "txt"; this.txt.Size = new System.Drawing.Size(192, 21); this.txt.TabIndex = 1; this.txt.KeyUp += new System.Windows.Forms.KeyEventHandler(this.txt_KeyUp); this.txt.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txt_KeyPress); this.txt.TextChanged += new System.EventHandler(this.txt_TextChanged); this.txt.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_KeyDown); // // cmd // this.cmd.FlatStyle = System.Windows.Forms.FlatStyle.System; this.cmd.Location = new System.Drawing.Point(156, 100); this.cmd.Name = "cmd"; this.cmd.Size = new System.Drawing.Size(88, 28); this.cmd.TabIndex = 4; this.cmd.Text = "Button1"; this.cmd.MouseLeave += new System.EventHandler(this.pic_MouseLeave); this.cmd.Click += new System.EventHandler(this.pic_Click); this.cmd.MouseEnter += new System.EventHandler(this.pic_MouseEnter); this.cmd.MouseHover += new System.EventHandler(this.pic_MouseHover); this.cmd.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pic_MouseUp); this.cmd.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pic_MouseDown); // // Label2 // this.Label2.Location = new System.Drawing.Point(20, 52); this.Label2.Name = "Label2"; this.Label2.Size = new System.Drawing.Size(128, 16); this.Label2.TabIndex = 2; this.Label2.Text = "Test mouse events here:"; // // Label3 // this.Label3.Location = new System.Drawing.Point(23, 100); this.Label3.Name = "Label3"; this.Label3.Size = new System.Drawing.Size(64, 24); this.Label3.TabIndex = 11; this.Label3.Text = "Label3"; // // eventLogList // this.eventLogList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.eventLogList.FormattingEnabled = true; this.eventLogList.IntegralHeight = false; this.eventLogList.Location = new System.Drawing.Point(7, 156); this.eventLogList.Name = "eventLogList"; this.eventLogList.Size = new System.Drawing.Size(384, 212); this.eventLogList.TabIndex = 10; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(399, 374); this.Controls.Add(this.GroupBox1); this.Controls.Add(this.Label3); this.Controls.Add(this.eventLogList); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Name = "Form1"; this.Text = "Event Tracker"; this.GroupBox1.ResumeLayout(false); this.GroupBox1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pic)).EndInit(); this.ResumeLayout(false); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
Get Async Key State
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; public class Form1 : Form { [DllImport("User32.dll")] private static extern short GetAsyncKeyState( System.Windows.Forms.Keys vKey); private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label lbl; private System.Windows.Forms.Button cmdAsyncState; public Form1() { InitializeComponent(); } private void Form1_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = true; } private void Form1_KeyDown(object sender, KeyEventArgs e) { lbl.Text = "Key Down: " + e.KeyValue.ToString(); lbl.Text += " Key Code: " + e.KeyCode.ToString(); lbl.Text += " Key Data: " + e.KeyData.ToString(); if ((e.Modifiers & Keys.Shift) == Keys.Shift) { lbl.Text += " " + "Shift was held down."; } if ((e.Modifiers & Keys.Control) == Keys.Control) { lbl.Text += " " + "Control was held down."; } if (e.Alt) { lbl.Text += " " + "Alt was held down."; } } private void cmdAsyncState_Click(object sender, EventArgs e) { int state = Convert.ToInt32(GetAsyncKeyState(Keys.A).ToString()); switch (state) { case 0: lbl.Text = "A has not been pressed since the last call."; break; case 1: lbl.Text = "A is not currently pressed, but has been pressed since the last call."; break; case -32767: lbl.Text = "A is currently pressed."; break; } } private void InitializeComponent() { this.textBox1 = new System.Windows.Forms.TextBox(); this.lbl = new System.Windows.Forms.Label(); this.cmdAsyncState = new System.Windows.Forms.Button(); this.SuspendLayout(); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(36, 36); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(205, 21); this.textBox1.TabIndex = 0; this.textBox1.Text = "<Text will never appear here>"; // // lbl // this.lbl.AutoSize = true; this.lbl.Location = new System.Drawing.Point(35, 77); this.lbl.Name = "lbl"; this.lbl.Size = new System.Drawing.Size(0, 0); this.lbl.TabIndex = 1; // // cmdAsyncState // this.cmdAsyncState.Location = new System.Drawing.Point(36, 202); this.cmdAsyncState.Name = "cmdAsyncState"; this.cmdAsyncState.Size = new System.Drawing.Size(141, 24); this.cmdAsyncState.TabIndex = 2; this.cmdAsyncState.Text = "GetAsyncState() for "A""; this.cmdAsyncState.Click += new System.EventHandler(this.cmdAsyncState_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.Add(this.cmdAsyncState); this.Controls.Add(this.lbl); this.Controls.Add(this.textBox1); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.KeyPreview = true; this.Name = "Form1"; this.Text = "KeyTest"; this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); this.ResumeLayout(false); this.PerformLayout(); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
Alt key pressed
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; public class Form1 : Form { [DllImport("User32.dll")] private static extern short GetAsyncKeyState( System.Windows.Forms.Keys vKey); private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label lbl; private System.Windows.Forms.Button cmdAsyncState; public Form1() { InitializeComponent(); } private void Form1_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = true; } private void Form1_KeyDown(object sender, KeyEventArgs e) { lbl.Text = "Key Down: " + e.KeyValue.ToString(); lbl.Text += " Key Code: " + e.KeyCode.ToString(); lbl.Text += " Key Data: " + e.KeyData.ToString(); if ((e.Modifiers & Keys.Shift) == Keys.Shift) { lbl.Text += " " + "Shift was held down."; } if ((e.Modifiers & Keys.Control) == Keys.Control) { lbl.Text += " " + "Control was held down."; } if (e.Alt) { lbl.Text += " " + "Alt was held down."; } } private void cmdAsyncState_Click(object sender, EventArgs e) { int state = Convert.ToInt32(GetAsyncKeyState(Keys.A).ToString()); switch (state) { case 0: lbl.Text = "A has not been pressed since the last call."; break; case 1: lbl.Text = "A is not currently pressed, but has been pressed since the last call."; break; case -32767: lbl.Text = "A is currently pressed."; break; } } private void InitializeComponent() { this.textBox1 = new System.Windows.Forms.TextBox(); this.lbl = new System.Windows.Forms.Label(); this.cmdAsyncState = new System.Windows.Forms.Button(); this.SuspendLayout(); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(36, 36); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(205, 21); this.textBox1.TabIndex = 0; this.textBox1.Text = "<Text will never appear here>"; // // lbl // this.lbl.AutoSize = true; this.lbl.Location = new System.Drawing.Point(35, 77); this.lbl.Name = "lbl"; this.lbl.Size = new System.Drawing.Size(0, 0); this.lbl.TabIndex = 1; // // cmdAsyncState // this.cmdAsyncState.Location = new System.Drawing.Point(36, 202); this.cmdAsyncState.Name = "cmdAsyncState"; this.cmdAsyncState.Size = new System.Drawing.Size(141, 24); this.cmdAsyncState.TabIndex = 2; this.cmdAsyncState.Text = "GetAsyncState() for "A""; this.cmdAsyncState.Click += new System.EventHandler(this.cmdAsyncState_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.Add(this.cmdAsyncState); this.Controls.Add(this.lbl); this.Controls.Add(this.textBox1); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.KeyPreview = true; this.Name = "Form1"; this.Text = "KeyTest"; this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); this.ResumeLayout(false); this.PerformLayout(); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
Control Key pressed
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; public class Form1 : Form { [DllImport("User32.dll")] private static extern short GetAsyncKeyState( System.Windows.Forms.Keys vKey); private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label lbl; private System.Windows.Forms.Button cmdAsyncState; public Form1() { InitializeComponent(); } private void Form1_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = true; } private void Form1_KeyDown(object sender, KeyEventArgs e) { lbl.Text = "Key Down: " + e.KeyValue.ToString(); lbl.Text += " Key Code: " + e.KeyCode.ToString(); lbl.Text += " Key Data: " + e.KeyData.ToString(); if ((e.Modifiers & Keys.Shift) == Keys.Shift) { lbl.Text += " " + "Shift was held down."; } if ((e.Modifiers & Keys.Control) == Keys.Control) { lbl.Text += " " + "Control was held down."; } if (e.Alt) { lbl.Text += " " + "Alt was held down."; } } private void cmdAsyncState_Click(object sender, EventArgs e) { int state = Convert.ToInt32(GetAsyncKeyState(Keys.A).ToString()); switch (state) { case 0: lbl.Text = "A has not been pressed since the last call."; break; case 1: lbl.Text = "A is not currently pressed, but has been pressed since the last call."; break; case -32767: lbl.Text = "A is currently pressed."; break; } } private void InitializeComponent() { this.textBox1 = new System.Windows.Forms.TextBox(); this.lbl = new System.Windows.Forms.Label(); this.cmdAsyncState = new System.Windows.Forms.Button(); this.SuspendLayout(); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(36, 36); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(205, 21); this.textBox1.TabIndex = 0; this.textBox1.Text = "<Text will never appear here>"; // // lbl // this.lbl.AutoSize = true; this.lbl.Location = new System.Drawing.Point(35, 77); this.lbl.Name = "lbl"; this.lbl.Size = new System.Drawing.Size(0, 0); this.lbl.TabIndex = 1; // // cmdAsyncState // this.cmdAsyncState.Location = new System.Drawing.Point(36, 202); this.cmdAsyncState.Name = "cmdAsyncState"; this.cmdAsyncState.Size = new System.Drawing.Size(141, 24); this.cmdAsyncState.TabIndex = 2; this.cmdAsyncState.Text = "GetAsyncState() for "A""; this.cmdAsyncState.Click += new System.EventHandler(this.cmdAsyncState_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.Add(this.cmdAsyncState); this.Controls.Add(this.lbl); this.Controls.Add(this.textBox1); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.KeyPreview = true; this.Name = "Form1"; this.Text = "KeyTest"; this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); this.ResumeLayout(false); this.PerformLayout(); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }