一旦按下ENTER键,我试图让应用程序导航到Web浏览器组件中的某个URL(条形码阅读器将数据输入到条形码文本框中并编程为添加&#34 ;在每次扫描结束时输入")。然后将条形码编号发送到服务器以通过URL进行验证,结果显示在Web浏览器中。
在阅读Stack Overflow之后,我得出结论this.KeyPreview
尚未设置 - 但即使将此设置为True,它仍然不会。
我想要它做的是当在Form2上的任何地方按下ENTER时,它应该将WebBrowser
组件URL更改为Barcode
文本框中包含的数据。
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);
}
}
}
}
Designer文件:
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 :(得分:0)
在您的代码中:
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);
在任何时候你都没有将keydown代码链接到你认为你做过的控件。所以不,它不会。
个人在我自己的条形码阅读应用程序中,我使用了更改的文本,并找到了与规格匹配的条形码,然后自动提交了..但我的是用于磁带扫描,所以他们可以扫描250多个磁带而不想要每次按一个按钮