如何使用c#等待函数内部的用户输入

时间:2014-04-28 11:21:19

标签: c#-4.0

我有一个窗口应用程序,用户可以打印他们的产品条形码值,也可以扫描它, 现在我正在寻找一些线程或其他方式, 如果用户在打印第一个值后打印5值,则功能在文本框中等待用户输入(我调用文本框向上事件以捕获扫描值) 如果值正确,那么我的函数会继续执行或等到用户扫描正确的条形码,

那么我如何制作可以等待用户输入然后继续执行的方法或功能。

           private void myFunction1()
            {

             for (i = 0; i < intPrintNo; i++)  // Number Of Print
              {

           // here I write Code For Print My Barcode
          // Now I want to wait For user Input in my text box



                   jumphere :   
                       txtBarcode.Text = "";
                       txtBarcode.Enabled = true;
                       txtBarcode.Visible = true;
                       txtBarcode.Focus();
                       if (keyUp()== false)
                       {
                           txtBarcode.Text = "";
                           txtBarcode.Enabled = true;

                           goto jumphere;
                       }

                       // If return True than for loop Continue for next Printing 




                   }


               }

1 个答案:

答案 0 :(得分:0)

根据我对您的问题的理解,您希望打印用户指定的值条形码,然后用户可以扫描相同的条形码以验证是否正确打印。

您可以使用以下步骤在Windows窗体中实现此功能

  1. 用户在txtInput
  2. 中输入值(打印条形码)
  3. 按下打印按钮(btnPrint)
  4. 打印按钮事件处理程序将首先禁用自身和输入文本框(btnPrint.Enabled = txtInput.Enabled = false; Application.DoEvents();),然后打印条形码并将焦点设置在文本框txtVerify上。
  5. 用户将扫描文本框中的条形码txtVerify。
  6. 用户将点击验证按钮(btnVerify),它将比较txtInput和txtVerify中的值。
  7. 如果一切正常,请清除txtInput,txtVerify,启用txtInput和btnPrint,将焦点设置为txtInput以获取下一个值
  8. 如果有错误,请做好帮助。
  9. 编辑:根据OP评论(最小用户努力)

    您可以在每次扫描后将条形码扫描仪的设置更改为后缀换行符(Enter)(您可以在条形码附带的手册中找到如何进行此设置)......现在,

    步骤4.用户将扫描文本框中的条形码txtVerify(扫描将在扫描结束时按Enter键)。 txtVerify.TextChanged事件处理程序将检查是否按下了Enter键,如果是,则调用代码进行验证(比较txtInput和txtVerify中的值) 步骤5.从上面删除此步骤 如果一切正常,请清除txtInput,txtVerify,启用txtInput和btnPrint,将焦点设置为txtInput以获取下一个值 步骤7.如果错误,请做必要的。

    此外,当用户按下回车键时,您可以修改第一个文本框以打印条形码(因此,无需单击“打印”按钮)

    因此,经过上述修改后,用户将输入文本按回车(这将打印条形码)然后扫描(因为焦点已经在txtVerify中)。如果一切正常,可以输入新值。

    要重置屏幕,您可以提供“重置”按钮。


    很高兴帮忙!如果您觉得有帮助,请记得接受答案。