2 zfkwhf zfkwhf 于 2017.01.06 10:23 提问

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
hehexiaoxia   2017.01.06 11:49
已采纳

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

hehexiaoxia
hehexiaoxia 回复zfk1024: 如果你要想在button_Click事件里面完成所有步骤,那么可以在事件中另外启动一个线程,线程中使用manualResetEvent.waitone()等待结果后,执行找钱。这样不会影响ui主线程,界面就不会卡死了。但是又可能面临新的问题,比如线程太多,或者共用变量,需要加锁或者同步的问题。
一年多之前 回复
zfkwhf
zfkwhf 嗯,这样可以,但是我想在button_Click事件中得到总金额后用manualResetEvent.waitone()去等待输入框输入(这一步根本就不行,因为button事件未完成,winform界面根本无法输入),然后在输入框的回车事件中写找钱的程序并ManualResetEvent.Set(),让刚刚的button事件继续运行,不知道怎么写,还是这样不可行?初学,不是很了解,望指教
一年多之前 回复
csmzl
csmzl   2017.01.06 14:45

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

hehexiaoxia
hehexiaoxia 如果用弹出框,倒是个好办法,使用showdialog的方法(即模态窗体),代码自然就不会往下走了,代码里面也不用写循环。
一年多之前 回复
zfkwhf
zfkwhf 对呀,不知道这个方法怎么写,只能想到用input这个控件,还有就是直接完成button事件,再在输入框的回车事件里完成剩下的工作。ajax我没学过,其实通过这个我主要想学到的是manualResetEvent,不过还是谢谢你了
一年多之前 回复
bdmh
bdmh   Ds   Rxr 2017.01.06 10:26

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

zfkwhf
zfkwhf 这个代码不会,是用了manualResetEvent后会假死,应该用什么方法跳转到输入框输入数据再继续button中的后续事件呢,望指教
一年多之前 回复
czl211
czl211   2017.01.06 10: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) { }
}));
}
}

zfkwhf
zfkwhf 谢谢,不是哦,我是在做一个很简单的收银系统,想做到像超市小票上面显示的那样,totalCost是消费的总金额,已经得到了消费的总金额,下一步肯定是顾客出钱,然后找补给对方,我想在一个button事件中全部解决,目前找到的方法 是manualResetEvent,可是我不会用,就是让button等待,直到textbox中有输入顾客给的钱数,button才继续后面的找补功能,可关键是在button按钮进行时我要怎么跳到输入框输入金额,烦恼
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
如何通过按钮触发事件由一个jsp页面转到另一个jsp页面
如何通过按钮触发事件由一个jsp页面转到另一个jsp页面 2008-05-21 10:01shuang_0402  分类:其他编程语言 | 浏览 8688 次  编程语言 登陆页面,如何通过按钮触发事件由一个jsp页面转到另一个jsp页面,比如点击注册时由index.jsp转到zhuce.jsp 分享到: 2008-05-23 16
android webview中html页面点击按钮跳转到activity
在android端,用webview加载html,里面包含一个按钮,点击html里的按钮跳转到android的另一个activity中
jsp中,一个button onclick跳转
1、jsp中,一个button onclick跳转 方式一:onclick="window.location='new.jsp'"。 onclick="openpage()" 方式二:   function openpage(){       window.location.replace("/new.jsp");   } 方式三:   fu
ios 点击抽屉页面按钮,触发跳转另一个页面
1.本人设置的抽屉页面是用view(在一个Controller里 创建3个view,大小自己设置,可以实现左右抽屉) 之间坐标偏移,进而移动出现效果 不知道你们有没有遇到这种情况,当点击抽屉页面按钮(自己设置的按钮,并给按钮设置触发方法),跳转另一个页面(在该页面自己设置一些功能),其中设置一个功能就是点击返回原来页面(就是刚开始咱点击抽屉页面按钮的那个页面),返回过来时页面有偏移问题,
自己写的,跳转到xx页面后,自动触发特定button的click事件
特种兵-ak47      var timeout = 1;  function doClick(){   var btn = document.getElementById("zhuyong");   if(timeout == 0){    btn.click();   }else{    timeout--;    setTimeout("doClick()",1);
Angular输入框内按下回车会触发其它button的点击事件的解决方法
偶然间遇到的一个八阿哥。解决方法:为button元素添加type="button"参考链接:http://stackoverflow.com/questions/20945834/why-hitting-enter-in-angularjs-forms-text-input-causes-a-side-effect/20946778
用axure给按钮图片等添加点击事件跳转页面
由于公司产品离职,只能自己做了,汗~~ 整体过程挺好理解的,拖拽一个图片,双击能设置背景图片。然后选中按钮,并双击OnClick 2.在弹出的视图中可以修改点击事件的名字 3.由于我这个是在当前页面弹出二级页面,所以点击Current Window,并点击要跳转的页面,然后点击ok 4、点击ok后,回到工作区发现原来的按钮上有一个数字,表示添加上了点击事件,
带有按钮并且可以执行单击事件的WINFORM窗体,体悟C#的创建过程
using System;using System.Drawing;using System.Windows.Forms;namespace Window{class Window{static void Main(){Application.Run(new Init());}}
dojo之Button篇
1、设计关键 (1)设置Button背景图片 (2)设计Button点击事件 2、设计步骤 (1)设置Button背景图片       A、样式设置 .btnIcon{ width:30px; height:32px; background:url("../images/search.png") cente
点击这些按钮时进入到同一个action中找到相应的方法
HTML code <!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 问题是这样的:页面上有多