Csharp/C Sharp by API/System.Windows.Forms/KeyEventArgs — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Версия 15:31, 26 мая 2010

KeyEventArgs.Alt

 

   using System;
   using System.Drawing;
   using System.Collections;
   using System.ruponentModel;
   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") + "\n" +
            "Shift: " + (e.Shift ? "Yes" : "No" ) + "\n" +
            "Ctrl: " + (e.Control ? "Yes" : "No" ) + "\n" + 
            "KeyCode: " + e.KeyCode + "\n" +
            "KeyData: " + e.KeyData + "\n" +
            "KeyValue: " + e.KeyValue;                               
      }
   
      private void KeyDemo_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e )
      {
        Console.WriteLine("Key up");
      }
   }


KeyEventArgs.KeyCode

 
using System;
using System.Drawing;
using System.Windows.Forms;
   
class ExitOnX: Form
{
     public static void Main()
     {
          Application.Run(new ExitOnX());
     }
     public ExitOnX()
     {
          Text = "Exit on X";
     }
     protected override void OnKeyDown(KeyEventArgs kea)
     {
          if (kea.KeyCode == Keys.X)
               Close();
     }
}


KeyEventArgs.KeyData

 

using System;
using System.Collections.Generic;
using System.ruponentModel;
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 += "\nKey Code: " + e.KeyCode.ToString();
    lbl.Text += "\nKey Data: " + e.KeyData.ToString();
    if ((e.Modifiers & Keys.Shift) == Keys.Shift)
    {
      lbl.Text += "\n" + "Shift was held down.";
    }
    if ((e.Modifiers & Keys.Control) == Keys.Control)
    {
      lbl.Text += "\n" + "Control was held down.";
    }
    if (e.Alt)
    {
      lbl.Text += "\n" + "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());
  }
}


KeyEventArgs.KeyValue

 
using System;
using System.Collections.Generic;
using System.ruponentModel;
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 += "\nKey Code: " + e.KeyCode.ToString();
    lbl.Text += "\nKey Data: " + e.KeyData.ToString();
    if ((e.Modifiers & Keys.Shift) == Keys.Shift)
    {
      lbl.Text += "\n" + "Shift was held down.";
    }
    if ((e.Modifiers & Keys.Control) == Keys.Control)
    {
      lbl.Text += "\n" + "Control was held down.";
    }
    if (e.Alt)
    {
      lbl.Text += "\n" + "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());
  }
}


KeyEventArgs.Modifiers

 
using System;
using System.Collections.Generic;
using System.ruponentModel;
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 += "\nKey Code: " + e.KeyCode.ToString();
    lbl.Text += "\nKey Data: " + e.KeyData.ToString();
    if ((e.Modifiers & Keys.Shift) == Keys.Shift)
    {
      lbl.Text += "\n" + "Shift was held down.";
    }
    if ((e.Modifiers & Keys.Control) == Keys.Control)
    {
      lbl.Text += "\n" + "Control was held down.";
    }
    if (e.Alt)
    {
      lbl.Text += "\n" + "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());
  }
}