首页 > 解决方案 > 如何从文本框中自动获取值

问题描述

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

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

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

标签: c#winforms

解决方案


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

目前,您的代码将在更改其中的文本后将val任何文本存储在变量中。TextBox包括您输入输入的最后一个字符时的情况,因此您的代码最终会起作用。

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

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

推荐阅读