Csharp/CSharp Tutorial/GUI Windows Forms/KeyEvent

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

Change key event (key code) during in the event handler

<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class KeyEventDetailInfo : System.Windows.Forms.Form {

 private System.Windows.Forms.TextBox txtInput;
 private System.Windows.Forms.Label lblUpper;
 private System.Windows.Forms.Label label2;
 private System.Windows.Forms.Label label1;
 private System.Windows.Forms.Label lblLower;
 private System.Windows.Forms.Button btnReset;
 public KeyEventDetailInfo()
 {
   InitializeComponent();
 }
 private void InitializeComponent()
 {
   this.txtInput = new System.Windows.Forms.TextBox();
   this.btnReset = new System.Windows.Forms.Button();
   this.lblUpper = new System.Windows.Forms.Label();
   this.label2 = new System.Windows.Forms.Label();
   this.label1 = new System.Windows.Forms.Label();
   this.lblLower = new System.Windows.Forms.Label();
   this.SuspendLayout();
   // 
   // txtInput
   // 
   this.txtInput.Location = new System.Drawing.Point(8, 8);
   this.txtInput.Name = "txtInput";
   this.txtInput.TabIndex = 0;
   this.txtInput.Text = "";
   this.txtInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtInput_KeyDown);
   this.txtInput.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtInput_KeyPress);
   this.txtInput.KeyUp += new System.Windows.Forms.KeyEventHandler(this.txtInput_KeyUp);
   // 
   // btnReset
   // 
   this.btnReset.Location = new System.Drawing.Point(328, 8);
   this.btnReset.Name = "btnReset";
   this.btnReset.TabIndex = 2;
   this.btnReset.Text = "Reset";
   this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
   // 
   // lblUpper
   // 
   this.lblUpper.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
   this.lblUpper.Location = new System.Drawing.Point(368, 56);
   this.lblUpper.Name = "lblUpper";
   this.lblUpper.Size = new System.Drawing.Size(32, 23);
   this.lblUpper.TabIndex = 3;
   // 
   // label2
   // 
   this.label2.Location = new System.Drawing.Point(320, 56);
   this.label2.Name = "label2";
   this.label2.Size = new System.Drawing.Size(40, 16);
   this.label2.TabIndex = 4;
   this.label2.Text = "Upper:";
   this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
   // 
   // label1
   // 
   this.label1.Location = new System.Drawing.Point(320, 104);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(40, 16);
   this.label1.TabIndex = 5;
   this.label1.Text = "Lower:";
   this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
   // 
   // lblLower
   // 
   this.lblLower.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
   this.lblLower.Location = new System.Drawing.Point(368, 104);
   this.lblLower.Name = "lblLower";
   this.lblLower.Size = new System.Drawing.Size(32, 23);
   this.lblLower.TabIndex = 6;
   // 
   // KeyEventDetailInfo
   // 
   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   this.ClientSize = new System.Drawing.Size(417, 293);
   this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                            this.lblLower,
                                            this.label1,
                                            this.label2,
                                            this.lblUpper,
                                            this.btnReset,
                                            this.txtInput});
   this.ResumeLayout(false);
 }
 [STAThread]
 static void Main() 
 {
   Application.Run(new KeyEventDetailInfo());
 }
 private void txtInput_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
 {
   Console.WriteLine("KeyCode name: " + e.KeyCode);
   Console.WriteLine("KeyCode key code: " + ((int)e.KeyCode));
   Console.WriteLine("KeyData name: " + e.KeyData);
   Console.WriteLine("KeyData key code: " + ((int)e.KeyData));
   Console.WriteLine("KeyValue: " + e.KeyValue);
   Console.WriteLine("Handled: " + e.Handled);
 }
 private void txtInput_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
 {
   char keyChar;
   keyChar = e.KeyChar;
   Console.WriteLine("KeyPress event.");
   Console.WriteLine("KeyChar: " + keyChar);
   Console.WriteLine("KeyChar Code: " + (int)keyChar);
   Console.WriteLine("Handled: " + e.Handled);
   lblUpper.Text = keyChar.ToString().ToUpper();
   lblLower.Text = keyChar.ToString().ToLower();
 
   if (keyChar.ToString() == "$")
   {
     txtInput.AppendText("#");
     e.Handled = true;
   }
 }
 private void txtInput_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
 {
   Console.WriteLine("KeyCode name: " + e.KeyCode);
   Console.WriteLine("KeyCode key code: " + ((int)e.KeyCode));
   Console.WriteLine("KeyData name: " + e.KeyData);
   Console.WriteLine("KeyData key code: " + ((int)e.KeyData));
   Console.WriteLine("KeyValue: " + e.KeyValue);
   Console.WriteLine("Handled: " + e.Handled);
 }
 private void btnReset_Click(object sender, System.EventArgs e)
 {
   txtInput.Text = "";
   lblUpper.Text = "";
   lblLower.Text = "";
 }

}</source>

KeyEvent: key char(code)

<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class TextCancelEventKeyEvent : System.Windows.Forms.Form {

 private System.Windows.Forms.Label label1;
 private System.Windows.Forms.TextBox txtInput;
 private System.Windows.Forms.Label label2;
 private System.Windows.Forms.Label lblTrue;
 private System.Windows.Forms.Label label3;
 private System.Windows.Forms.Label lblCheck;
   private System.Windows.Forms.Label lblResults;
 public TextCancelEventKeyEvent()
 {
   InitializeComponent();
 }
 private void InitializeComponent()
 {
    this.label1 = new System.Windows.Forms.Label();
    this.txtInput = new System.Windows.Forms.TextBox();
    this.label2 = new System.Windows.Forms.Label();
    this.lblTrue = new System.Windows.Forms.Label();
    this.label3 = new System.Windows.Forms.Label();
    this.lblCheck = new System.Windows.Forms.Label();
    this.lblResults = new System.Windows.Forms.Label();
    this.SuspendLayout();
    // 
    // label1
    // 
    this.label1.Font = new System.Drawing.Font("Tahoma", 14.25F, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic), System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
    this.label1.Location = new System.Drawing.Point(48, 16);
    this.label1.Name = "label1";
    this.label1.Size = new System.Drawing.Size(176, 23);
    this.label1.TabIndex = 0;
    this.label1.Text = "ISBN Validation";
    // 
    // txtInput
    // 
    this.txtInput.Location = new System.Drawing.Point(72, 64);
    this.txtInput.Name = "txtInput";
    this.txtInput.TabIndex = 1;
    this.txtInput.Text = "";
    this.txtInput.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtInput_KeyPress);
    this.txtInput.Validating += new System.ruponentModel.CancelEventHandler(this.handleCancleEvent);
    // 
    // label2
    // 
    this.label2.Location = new System.Drawing.Point(24, 104);
    this.label2.Name = "label2";
    this.label2.Size = new System.Drawing.Size(80, 23);
    this.label2.TabIndex = 2;
    this.label2.Text = "True Number:";
    // 
    // lblTrue
    // 
    this.lblTrue.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
    this.lblTrue.Location = new System.Drawing.Point(112, 104);
    this.lblTrue.Name = "lblTrue";
    this.lblTrue.TabIndex = 3;
    // 
    // label3
    // 
    this.label3.Location = new System.Drawing.Point(32, 152);
    this.label3.Name = "label3";
    this.label3.Size = new System.Drawing.Size(72, 23);
    this.label3.TabIndex = 4;
    this.label3.Text = "Check Digit:";
    // 
    // lblCheck
    // 
    this.lblCheck.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
    this.lblCheck.Location = new System.Drawing.Point(112, 152);
    this.lblCheck.Name = "lblCheck";
    this.lblCheck.TabIndex = 5;
    // 
    // lblResults
    // 
    this.lblResults.Location = new System.Drawing.Point(56, 192);
    this.lblResults.Name = "lblResults";
    this.lblResults.Size = new System.Drawing.Size(152, 24);
    this.lblResults.TabIndex = 8;
    // 
    // TextCancelEventKeyEvent
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(264, 293);
    this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                 this.lblResults,
                                                                 this.lblCheck,
                                                                 this.label3,
                                                                 this.lblTrue,
                                                                 this.label2,
                                                                 this.txtInput,
                                                                 this.label1});
    this.ResumeLayout(false);
 }
 [STAThread]
 static void Main() 
 {
   Application.Run(new TextCancelEventKeyEvent());
 }
 private void handleCancleEvent(object sender, System.ruponentModel.CancelEventArgs e)
 {
   TextBox tb = (TextBox)sender;
   string strInput = tb.Text;
       Console.WriteLine(strInput);
 }     
 private void txtInput_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
 {
    char keyChar;
    keyChar = e.KeyChar;
    if(!Char.IsDigit(keyChar)      // 0 - 9
       &&
       keyChar != 8               // backspace
       &&
       keyChar != 13              // enter
       &&
       keyChar != "x"
       &&
       keyChar != 45              //  dash/minus
       ){
       //  Do not display the keystroke
       e.Handled = true;
    }
 }     

}</source>

Key event: key down, key up, key pressed

<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class KeyEventDetailInfo : System.Windows.Forms.Form {

 private System.Windows.Forms.TextBox txtInput;
 private System.Windows.Forms.Label lblUpper;
 private System.Windows.Forms.Label label2;
 private System.Windows.Forms.Label label1;
 private System.Windows.Forms.Label lblLower;
 private System.Windows.Forms.Button btnReset;
 public KeyEventDetailInfo()
 {
   InitializeComponent();
 }
 private void InitializeComponent()
 {
   this.txtInput = new System.Windows.Forms.TextBox();
   this.btnReset = new System.Windows.Forms.Button();
   this.lblUpper = new System.Windows.Forms.Label();
   this.label2 = new System.Windows.Forms.Label();
   this.label1 = new System.Windows.Forms.Label();
   this.lblLower = new System.Windows.Forms.Label();
   this.SuspendLayout();
   // 
   // txtInput
   // 
   this.txtInput.Location = new System.Drawing.Point(8, 8);
   this.txtInput.Name = "txtInput";
   this.txtInput.TabIndex = 0;
   this.txtInput.Text = "";
   this.txtInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtInput_KeyDown);
   this.txtInput.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtInput_KeyPress);
   this.txtInput.KeyUp += new System.Windows.Forms.KeyEventHandler(this.txtInput_KeyUp);
   // 
   // btnReset
   // 
   this.btnReset.Location = new System.Drawing.Point(328, 8);
   this.btnReset.Name = "btnReset";
   this.btnReset.TabIndex = 2;
   this.btnReset.Text = "Reset";
   this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
   // 
   // lblUpper
   // 
   this.lblUpper.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
   this.lblUpper.Location = new System.Drawing.Point(368, 56);
   this.lblUpper.Name = "lblUpper";
   this.lblUpper.Size = new System.Drawing.Size(32, 23);
   this.lblUpper.TabIndex = 3;
   // 
   // label2
   // 
   this.label2.Location = new System.Drawing.Point(320, 56);
   this.label2.Name = "label2";
   this.label2.Size = new System.Drawing.Size(40, 16);
   this.label2.TabIndex = 4;
   this.label2.Text = "Upper:";
   this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
   // 
   // label1
   // 
   this.label1.Location = new System.Drawing.Point(320, 104);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(40, 16);
   this.label1.TabIndex = 5;
   this.label1.Text = "Lower:";
   this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
   // 
   // lblLower
   // 
   this.lblLower.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
   this.lblLower.Location = new System.Drawing.Point(368, 104);
   this.lblLower.Name = "lblLower";
   this.lblLower.Size = new System.Drawing.Size(32, 23);
   this.lblLower.TabIndex = 6;
   // 
   // KeyEventDetailInfo
   // 
   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   this.ClientSize = new System.Drawing.Size(417, 293);
   this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                            this.lblLower,
                                            this.label1,
                                            this.label2,
                                            this.lblUpper,
                                            this.btnReset,
                                            this.txtInput});
   this.ResumeLayout(false);
 }
 [STAThread]
 static void Main() 
 {
   Application.Run(new KeyEventDetailInfo());
 }
 private void txtInput_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
 {
   Console.WriteLine("KeyCode name: " + e.KeyCode);
   Console.WriteLine("KeyCode key code: " + ((int)e.KeyCode));
   Console.WriteLine("KeyData name: " + e.KeyData);
   Console.WriteLine("KeyData key code: " + ((int)e.KeyData));
   Console.WriteLine("KeyValue: " + e.KeyValue);
   Console.WriteLine("Handled: " + e.Handled);
 }
 private void txtInput_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
 {
   char keyChar;
   keyChar = e.KeyChar;
   Console.WriteLine("KeyPress event.");
   Console.WriteLine("KeyChar: " + keyChar);
   Console.WriteLine("KeyChar Code: " + (int)keyChar);
   Console.WriteLine("Handled: " + e.Handled);
   lblUpper.Text = keyChar.ToString().ToUpper();
   lblLower.Text = keyChar.ToString().ToLower();
 
   if (keyChar.ToString() == "$")
   {
     txtInput.AppendText("#");
     e.Handled = true;
   }
 }
 private void txtInput_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
 {
   Console.WriteLine("KeyCode name: " + e.KeyCode);
   Console.WriteLine("KeyCode key code: " + ((int)e.KeyCode));
   Console.WriteLine("KeyData name: " + e.KeyData);
   Console.WriteLine("KeyData key code: " + ((int)e.KeyData));
   Console.WriteLine("KeyValue: " + e.KeyValue);
   Console.WriteLine("Handled: " + e.Handled);
 }
 private void btnReset_Click(object sender, System.EventArgs e)
 {
   txtInput.Text = "";
   lblUpper.Text = "";
   lblLower.Text = "";
 }

}</source>