title: How to capture whole Barcode value on Winform without using TextChanged event?
body: <p>When a barcode is scanned on form1, I make a call to database to get the item for this barcode and open form2 with pre-populated data. </p>
  
  <p>If I use text changed event then it makes as many times as numbers in one barcode. </p>
  
  <p>I cannot check length of the barcode as it may be different each time. </p>
  
  <p>which event I should use to make only one call when Barcode is scanned?</p>
  
  <p>I tried TextChanged, KeyPress, KeyDown events but they all are being called multiple times. </p>
  
  <pre><code>    private void txt_Barcode_TextChanged(object sender, EventArgs e)
      {
          con.Open();
          GenerateInvoice gn = new GenerateInvoice();
          string query = "SELECT * FROM dbo.Inventory WHERE Barcode = '" + txt_Barcode.Text + "' ";
  
          SqlCommand cmd = new SqlCommand(query, con);
          SqlDataReader dr = cmd.ExecuteReader();
  
  
          while (DR1.Read())
          {
              gn.txt_Barcode.Text = dr["Barcode"].ToString();
              gn.txt_ProductName.Text = dr["ProductName"].ToString();
              gn.txt_Price.Text = dr["SellingPrice"].ToString();
              gn.txt_QTY.Text = 1.ToString();
              gn.txt_Total.Text = dr["SellingPrice"].ToString();
  
          }
          con.Close();
      }
  </code></pre>
  
  <p>I am open to use textbox to capture barcode on form1 (I will hide it on UI)</p>