如下面的代码,我要怎么跳转到输入框,好像是说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控件上,就像超市小票上一样,有个消费总额,还有顾客给的钱数,找零
那你想怎么判断输入完成呢?比如输入回车?或者失去焦点?
这样的话,是不是可以考虑,在输入完成事件里面写找钱的程序。
你这个代码会假死?除非TotalCost内容太多,导致循环耗时,要吗放到异步中去,要么考虑DoEvent
不知道你是不是想实现在输入框里面输入消费的金额,然后累加起来显示到界面上的功能。我做了一个小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) { }
}));
}
}
一、要么就在“//转到输入框输入金额,然后找钱,”这里加个方法,这个方法实现跳出一个输入框让收银员输入收到的金额,
在这之前让程序不停循环咯(如不断判断输入框是否为空,为空继续循环,不为空则返回金额),然后继续button13的click 事件。
二、直接前台用ajax做好了。