zfk1024
2017-01-06 02:23
采纳率: 100%
浏览 2.6k

C#winform中的按钮点击事件中如何跳转到输入框输入数据才继续按钮中的事件?

如下面的代码,我要怎么跳转到输入框,好像是说manualResetEvent可以做到,可是我用了manualResetEvent会造成窗体假死,新手求大神指教,
    private void button13_Click(object sender, EventArgs e)
    {
        float totalCost = 0;
        foreach(float cost in TotalCost)
        {
            totalCost += cost;
        }
        listBox1.Items.Add("---------------------------");
        listBox1.Items.Add("您一共消费了" + totalCost + "元");
        //转到输入框输入金额,然后找钱,

    }

我想做的是一个非常简单的收银系统,消费总金额已得到并已显示到listbox控件上,现在是想在button事件中得到消费总金额后跳转到textbox中输入顾客给的钱数并找补,然后一并显示到listbox控件上,就像超市小票上一样,有个消费总额,还有顾客给的钱数,找零

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • hehexiaoxia 2017-01-06 03:49
    已采纳

    那你想怎么判断输入完成呢?比如输入回车?或者失去焦点?
    这样的话,是不是可以考虑,在输入完成事件里面写找钱的程序。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • bdmh 2017-01-06 02:26

    你这个代码会假死?除非TotalCost内容太多,导致循环耗时,要吗放到异步中去,要么考虑DoEvent

    评论
    解决 无用
    打赏 举报
  • phoebe484 2017-01-06 02:49

    不知道你是不是想实现在输入框里面输入消费的金额,然后累加起来显示到界面上的功能。我做了一个小Demo,不知道能实现你想要的效果不。
    在窗体里面加了两个控件,一个TextBox和一个Label,其中TextBox是你用来输入消费的金额的,Label是显示总的金额,输入框输入完成之后按Enter键
    就可以将总金额显示在Label上,后台代码如下:
    private double TotalCost;
    public Form1()
    {
    InitializeComponent();
    TotalCost = 0;
    }
    private void textBox2_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.Enter)
    {
    this.Invoke(new Action(() => {
    try
    {
    double cost = double.Parse(textBox2.Text.Trim());
    TotalCost += cost;
    label1.Text = "消费总金额:" + TotalCost.ToString();
    textBox2.Text = "";
    }
    catch (Exception ex) { }
    }));
    }
    }

    评论
    解决 无用
    打赏 举报
  • csmzl 2017-01-06 06:45

    一、要么就在“//转到输入框输入金额,然后找钱,”这里加个方法,这个方法实现跳出一个输入框让收银员输入收到的金额,
    在这之前让程序不停循环咯(如不断判断输入框是否为空,为空继续循环,不为空则返回金额),然后继续button13的click 事件。
    二、直接前台用ajax做好了。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题