如何自动从文本框中获取值

时间:2019-02-25 13:15:00

标签: c# winforms

我正在尝试将卡扫描到文本框,并且希望在扫描完成后从文本框中获取价值。

当我尝试执行此操作时,它将在扫描完成之前执行。

private void txtUserName_TextChanged(object sender, EventArgs e)
{
    string val = txtUserName.Text;
}

1 个答案:

答案 0 :(得分:2)

您需要选择一些特殊字符来表示扫描已完成。

当前,您的代码在更改其中的文本后,会将val中的所有文本存储在TextBox中。包括当您键入输入内容的最后一个字符时的情况,因此您的代码最终将可以工作。

但是我建议选择例如\t个字符,然后使用KeyPress事件检查此字符指示的扫描完成(因为事件参数具有KeyChar,这非常有用) :

private void txtUserName_KeyPress(object sender, KeyPressEventArgs e)
{
  if (e.KeyChar != '\t') return;
  // handle your event
}