2017-03-27 6 views
0

Ich versuche, die Anwendung zu bekommen, um eine bestimmte URL in der Web-Browser-Komponente zu navigieren, wenn die ENTER-Taste gedrückt wurde (ein Barcode-Leser gibt die Daten in die Barcode-Textbox und ist so programmiert hinzufügen "ENTER" am Ende jedes Scans). Die Barcode-Nummer wird dann über die URL an den Server zur Validierung geschickt und das Ergebnis wird im Web-Browser angezeigt.C# Keydown Ereignis nicht funktioniert

Nachdem ich auf Stack Overflow zuerst gelesen habe, kam ich zu dem Schluss, dass this.KeyPreview nicht gesetzt wurde - aber selbst nach dem Setzen auf True würde es immer noch nicht.

Alles, was ich tun möchte ist, wenn ENTER irgendwo auf Form2 gedrückt wurde, sollte es die WebBrowser Komponente URL zu den Daten in der Barcode Textbox enthaltenen ändern.

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace SUBWAY_deliverX_2017_POSlink 
{ 
    public partial class Form2 : Form 
    { 
     public Form2() 
     { 
      InitializeComponent(); 
      this.ActiveControl = Barcode; 
     } 

     private void Form2_Load(object sender, EventArgs e) 
     { 

     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      Close(); 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 

     } 

     private void Barcode_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void Barcode_KeyDown(object sender, KeyEventArgs e) 
     { 
      if (e.KeyCode == Keys.Enter) 
      { 
       webBrowser1.Navigate("https://10.0.0.142/deliverXPOSquery.php?barcode=" + Barcode.Text); 
      } 
     } 
    } 
} 

Und die Designer-Datei:

namespace SUBWAY_deliverX_2017_POSlink 
{ 
    partial class Form2 
    { 
     /// <summary> 
     /// Required designer variable. 
     /// </summary> 
     private System.ComponentModel.IContainer components = null; 

     /// <summary> 
     /// Clean up any resources being used. 
     /// </summary> 
     /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> 
     protected override void Dispose(bool disposing) 
     { 
      if (disposing && (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() 
     { 
      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form2)); 
      this.button1 = new System.Windows.Forms.Button(); 
      this.Barcode = new System.Windows.Forms.TextBox(); 
      this.pictureBox1 = new System.Windows.Forms.PictureBox(); 
      this.webBrowser1 = new System.Windows.Forms.WebBrowser(); 
      this.button2 = new System.Windows.Forms.Button(); 
      ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 
      this.SuspendLayout(); 
      // 
      // button1 
      // 
      this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
      this.button1.Location = new System.Drawing.Point(177, 241); 
      this.button1.Name = "button1"; 
      this.button1.Size = new System.Drawing.Size(249, 79); 
      this.button1.TabIndex = 0; 
      this.button1.Text = "Return to SubShop"; 
      this.button1.UseVisualStyleBackColor = true; 
      this.button1.Click += new System.EventHandler(this.button1_Click); 
      // 
      // Barcode 
      // 
      this.Barcode.BackColor = System.Drawing.SystemColors.Control; 
      this.Barcode.BorderStyle = System.Windows.Forms.BorderStyle.None; 
      this.Barcode.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
      this.Barcode.Location = new System.Drawing.Point(178, 323); 
      this.Barcode.Name = "Barcode"; 
      this.Barcode.Size = new System.Drawing.Size(249, 24); 
      this.Barcode.TabIndex = 1; 
      this.Barcode.TextChanged += new System.EventHandler(this.Barcode_TextChanged); 
      // 
      // pictureBox1 
      // 
      this.pictureBox1.Image = global::SUBWAY_deliverX_2017_POSlink.Properties.Resources.delxstoreheader; 
      this.pictureBox1.Location = new System.Drawing.Point(0, -2); 
      this.pictureBox1.Name = "pictureBox1"; 
      this.pictureBox1.Size = new System.Drawing.Size(589, 102); 
      this.pictureBox1.TabIndex = 3; 
      this.pictureBox1.TabStop = false; 
      // 
      // webBrowser1 
      // 
      this.webBrowser1.Location = new System.Drawing.Point(12, 106); 
      this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); 
      this.webBrowser1.Name = "webBrowser1"; 
      this.webBrowser1.Size = new System.Drawing.Size(563, 120); 
      this.webBrowser1.TabIndex = 4; 
      this.webBrowser1.Url = new System.Uri("https://10.0.0.142/deliverXPOSquery.php", System.UriKind.Absolute); 
      // 
      // button2 
      // 
      this.button2.Location = new System.Drawing.Point(471, 256); 
      this.button2.Name = "button2"; 
      this.button2.Size = new System.Drawing.Size(75, 23); 
      this.button2.TabIndex = 5; 
      this.button2.Text = "button2"; 
      this.button2.UseVisualStyleBackColor = true; 
      this.button2.Click += new System.EventHandler(this.button2_Click); 
      // 
      // Form2 
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 
      this.ClientSize = new System.Drawing.Size(587, 346); 
      this.ControlBox = false; 
      this.KeyPreview = true; 
      this.Controls.Add(this.button2); 
      this.Controls.Add(this.webBrowser1); 
      this.Controls.Add(this.pictureBox1); 
      this.Controls.Add(this.Barcode); 
      this.Controls.Add(this.button1); 
      this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 
      this.MaximumSize = new System.Drawing.Size(603, 385); 
      this.MinimumSize = new System.Drawing.Size(603, 385); 
      this.Name = "Form2"; 
      this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; 
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 
      this.Text = "deliverX 2017 - Order Validation"; 
      this.TopMost = true; 
      this.Load += new System.EventHandler(this.Form2_Load); 
      ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 
      this.ResumeLayout(false); 
      this.PerformLayout(); 

     } 

     #endregion 

     private System.Windows.Forms.Button button1; 
     private System.Windows.Forms.TextBox Barcode; 
     private System.Windows.Forms.PictureBox pictureBox1; 
     private System.Windows.Forms.WebBrowser webBrowser1; 
     private System.Windows.Forms.Button button2; 
    } 
} 
+0

Sie sollten nur den kürzesten Code notwendig zu reproduzieren Ihr Problem beinhalten. Veröffentlichen Sie nicht Ihr gesamtes Programm hier. Siehe: [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve). Bitte entfernen Sie alle unnötigen Code aus Frage –

Antwort

0

In Ihrem Code:

this.Barcode.BackColor = System.Drawing.SystemColors.Control; 
      this.Barcode.BorderStyle = System.Windows.Forms.BorderStyle.None; 
      this.Barcode.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
      this.Barcode.Location = new System.Drawing.Point(178, 323); 
      this.Barcode.Name = "Barcode"; 
      this.Barcode.Size = new System.Drawing.Size(249, 24); 
      this.Barcode.TabIndex = 1; 
      this.Barcode.TextChanged += new System.EventHandler(this.Barcode_TextChanged); 

Zu keinem Zeitpunkt haben Sie die keydown Code an die Steuerung verknüpft Sie denken, Sie haben. Also nicht.

Persönlich in meiner eigenen Barcode-Lese-App, habe ich den Text geändert und auf der Suche nach einem Barcode, der Spezifikation entspricht, dann automatisch eingereicht .. aber meine war für das Scannen von Bändern und so könnte in 250+ Bänder Scannen und würde nicht drücken wollen eine Taste jedes Mal

+0

Danke - ich immer noch Probleme habe verbindet, was ich an die Steuer Textbox tun, tun müssen, verknüpfen. Ich habe versucht, 'this.Barcode.KeyDown + = new System.EventHandler (this.Form2_KeyDown),' aber dies noch nicht – Rick

+0

funktioniert, weil Sie Barcode_KeyDown als Methode haben ...... – BugFinder

+0

Ah ich sehe, danke! – Rick