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

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

Текущая версия на 12:09, 26 мая 2010

Keys.Control

 
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());
  }
}


Keys.Escape

 
using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
using System.Text;
namespace KeyboardSample
{
    public class KeyboardSample : System.Windows.Forms.Form
    {
      private System.Windows.Forms.TextBox textBox1;
      private System.Windows.Forms.TextBox textBox2;
      private System.Windows.Forms.GroupBox groupBox1;
      private System.Windows.Forms.Label label1;
      private System.Windows.Forms.GroupBox groupBox2;
      private System.Windows.Forms.Label label2;
        private System.ruponentModel.Container components = null;
        public KeyboardSample()
        {
            InitializeComponent();
        }
        private void InitializeComponent()
        {
         this.textBox1 = new System.Windows.Forms.TextBox();
         this.textBox2 = new System.Windows.Forms.TextBox();
         this.groupBox1 = new System.Windows.Forms.GroupBox();
         this.label1 = new System.Windows.Forms.Label();
         this.groupBox2 = new System.Windows.Forms.GroupBox();
         this.label2 = new System.Windows.Forms.Label();
         this.groupBox1.SuspendLayout();
         this.groupBox2.SuspendLayout();
         this.SuspendLayout();
         // 
         // textBox1
         // 
         this.textBox1.Location = new System.Drawing.Point(16, 24);
         this.textBox1.Name = "textBox1";
         this.textBox1.Size = new System.Drawing.Size(168, 20);
         this.textBox1.TabIndex = 5;
         this.textBox1.Text = "";
         this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
         // 
         // textBox2
         // 
         this.textBox2.Location = new System.Drawing.Point(16, 24);
         this.textBox2.Name = "textBox2";
         this.textBox2.Size = new System.Drawing.Size(168, 20);
         this.textBox2.TabIndex = 6;
         this.textBox2.Text = "";
         this.textBox2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox2_KeyDown);
         // 
         // groupBox1
         // 
         this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                                this.label1,
                                                                                this.textBox1});
         this.groupBox1.Location = new System.Drawing.Point(8, 8);
         this.groupBox1.Name = "groupBox1";
         this.groupBox1.TabIndex = 7;
         this.groupBox1.TabStop = false;
         this.groupBox1.Text = "Key Monitor";
         // 
         // label1
         // 
         this.label1.Location = new System.Drawing.Point(16, 64);
         this.label1.Name = "label1";
         this.label1.Size = new System.Drawing.Size(168, 20);
         this.label1.TabIndex = 6;
         // 
         // groupBox2
         // 
         this.groupBox2.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                                this.textBox2,
                                                                                this.label2});
         this.groupBox2.Location = new System.Drawing.Point(8, 120);
         this.groupBox2.Name = "groupBox2";
         this.groupBox2.TabIndex = 8;
         this.groupBox2.TabStop = false;
         this.groupBox2.Text = "Keys Enumeration";
         // 
         // label2
         // 
         this.label2.Location = new System.Drawing.Point(16, 64);
         this.label2.Name = "label2";
         this.label2.Size = new System.Drawing.Size(168, 20);
         this.label2.TabIndex = 9;
         // 
         // KeyboardSample
         // 
         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
         this.ClientSize = new System.Drawing.Size(216, 229);
         this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                      this.groupBox2,
                                                                      this.groupBox1});
         this.Name = "KeyboardSample";
         this.Text = "KeyboardSample";
         this.groupBox1.ResumeLayout(false);
         this.groupBox2.ResumeLayout(false);
         this.ResumeLayout(false);
      }
        [STAThread]
        static void Main() 
        {
            Application.Run(new KeyboardSample());
        }
      private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
      {
         label1.Text = Convert.ToString(e.KeyValue);
      }
      private void textBox2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
      {
         StringBuilder sb = new StringBuilder();
         if(e.Shift) sb.Append("Shift, ");
         if(e.Alt) sb.Append("Alt, ");
         if(e.Control) sb.Append("Ctrl, ");
                    
         if(e.KeyCode==Keys.W||e.KeyCode==Keys.R||e.KeyCode==Keys.O||e.KeyCode==Keys.X)
         {
            sb.Append("Wrox Press!!");
         }
         else if(e.KeyCode==Keys.Escape&&e.Modifiers==(Keys.Shift|Keys.Alt))
         {
            sb.Append("Escape - that won"t work!");
         }
         else if(e.KeyCode == Keys.C && e.Modifiers==(Keys.Alt | Keys.Control))
         {
            sb.Append("CopyRight");
            textBox2.SelectedText = "CopyRight";
            textBox2.SelectionLength = 0;
         }
         else 
         {
            sb.Append(Convert.ToString(e.KeyData));
         }
         label2.Text = sb.ToString();
      }
    }
}


Keys.X

 
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();
     }
}