为什么界面上两个按钮控件不能同时进行?

问题描述

我在界面上放了两个按钮控件,一个start,一个stop,我按了start,它就开始向串口开始发码,一直循环发码,不会停,现在我想用stop按钮来停下这个发码过程。可是我发现那个start按钮下的循环一直在进行,我界面上其他按钮全动不了?怎么办啊?求指教!!本人是菜鸟级别的,希望大家多多指教。

解决方案

解决方案二:
试试用一个线程控制
解决方案三:
用BackgroundWorker去做
解决方案四:
弱弱地问下,是在哪个地方设置一个新线程啊?循环里面还是stop按钮下面啊?
解决方案五:
不是两个按钮控件不能同时的问题,是按了开始按钮后,界面都已经死掉,没办法移动了吧。
解决方案六:
用BackgroundWorker控件最简单,已经给你封装好了
解决方案七:
使用线程可以实现两个按钮同时用,要不你要等一个按钮执行完才能使用另一个
解决方案八:
用了BackgroundWorker控件之后,我要把那串码写到同一界面的textbox(又叫sending)中,出现异常:"线程间操作无效:从不是创建控件“sending”的线程访问它"。这个是怎么回事啊?
解决方案九:
就是这样的,界面控件只能创建他的线程访问,如果可能的话,你可以在RunWorkerCompleted事件里去处理后台完成以后操作的界面,要不然就要用委托了,或者如果无所谓线程安全的话,设置控件属性CheckForIllegalCrossThreadCalls=false;
解决方案十:
给你简单说明一下。BackgroundWorkerbackgroundWorker1=newBackgroundWorker();backgroundWorker1.DoWork+=newSystem.ComponentModel.DoWorkEventHandler(backgroundWorker1_DoWork);backgroundWorker1.RunWorkerCompleted+=newRunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);backgroundWorker1.RunWorkerAsync();while(backgroundWorker1.IsBusy){Application.DoEvents();}publicvoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse){Control.CheckForIllegalCrossThreadCalls=false;System.Diagnostics.Processp=newSystem.Diagnostics.Process();p.StartInfo.FileName="cmd.exe";//p.StartInfo.FileName=mencoder;//p.StartInfo.Arguments=Commandp;p.StartInfo.UseShellExecute=false;p.StartInfo.RedirectStandardOutput=true;p.StartInfo.RedirectStandardInput=true;p.StartInfo.CreateNoWindow=true;p.OutputDataReceived+=newDataReceivedEventHandler(Output);//开始执行p.Start();p.BeginOutputReadLine();p.StandardInput.WriteLine(Commandp);p.StandardInput.WriteLine("Exit");p.WaitForExit();p.Close();p.Dispose();}publicvoidbackgroundWorker1_RunWorkerCompleted(objectsender,RunWorkerCompletedEventArgse){ObjStateStObj1=newObjState();StObj1.value="转换成功";StObj1.identifier=statusIdentifier;this.SetStatus(StObj1);}

解决方案十一:
该回复于2011-12-15 13:55:00被版主删除
解决方案十二:
同意楼上的说法估计你是在主线程中处理start功能的而且是一直循环自己不会自动停止界面上都没时间去接受处理消息当然你点击不聊stop按钮了吧Start功能放在另外一个新建的线程里实现stop在主线程里实现就行了如上的方法有点太大材小用了吧
解决方案十三:
如果不是急着赶项目,建议楼主使用多线程,其中知道就用到多线程和委托。熟悉这两个东西就可以了
解决方案十四:
多线程控制就不会卡了

时间: 2024-08-02 23:50:34

为什么界面上两个按钮控件不能同时进行?的相关文章

asp.net1.1放上了web按钮控件,运行单击后刷新的厉害,有啥法子解决?查了资料,似乎net2.0里面方法不少.还有就是Ajax,但ajax技术听说不能被

问题描述 asp.net1.1放上了web按钮控件,运行单击后刷新的厉害,有啥法子解决?查了资料,似乎net2.0里面方法不少.还有就是Ajax,但ajax技术听说不能被搜索引擎收入,也不大敢用?除此以为啊有啥方法了?难道只能用asp里面的方法把web按钮去掉,还成inputbutton?然后用Iframe???

按钮控件的使用

最近有不少朋友发信到我的邮箱,其中有高手也有菜鸟,也许他们问的问题我还不能一一解答,但是他们的来信的确让我感受到极大的鼓舞.今天忙里偷闲,翻译了一片外国的文章,献给那些摸索中的菜鸟们. 下面将通过一个最简单的程序来说明Windows的消息机制.程序主要是使用两个按钮控件,它要求用户输入两个数字,当你按下其中一个按钮的时候,会根据进行相应的计算并输出结果.例如如果你输入1和2,然后按下''Plus'' 按钮,就会输出结果. 由于大多数情况下,按钮控件都是在对话框中使用的,所以我们的程序也就从对话框

状态条上能不能增加3个下推按钮控件,并且显示不同的图标?

问题描述 状态条上能不能增加3个下推按钮控件,并且显示不同的图标? 状态条上能不能增加3个下推按钮控件,并且显示不同的图标?怎么在状态条上增加下推按钮呢? 解决方案 http://www.jizhuomi.com/software/182.html

求大神帮忙-怎么在C#上的按钮控件同时放图片和文字

问题描述 怎么在C#上的按钮控件同时放图片和文字 想模仿Windows中的扫雷游戏,一开始就遇到难题,就是开始的时候选择难度的按钮 解决方案 自定义控件--图片按钮图片文字的控件ImageTextControl 解决方案二: 图片切换啊.先用ps或者什么把图片和文字做成一张图片然后到C#的时候直接设置会控件的skin不就可以了. 解决方案三: 首先,扫雷用的不是按钮,而是自己绘图做出来的,不信你用spy++看下就知道了.其次,在C#中你可以重绘按钮来实现,如果觉得麻烦,可以google一个第三方

利用.NET绘图技术制作水晶按钮控件

按钮|控件 UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序.UI编程体现在两个方面,一是设计精美的用户界面,再有就是符合大多数用户习惯和易于使用的操作流程,而制作出精美的.绚丽多彩的用户界面是博得最终用户喜爱的第一步.我们就以制作一个水晶样式的三维按钮为例来丰富.Net界面素材库,为Windows 窗体程序增加亮点. 一. 技术要点 不可否认的是,Windows编程已经

界面设计中关于panel控件的使用!

问题描述 做一个单窗口的小程序,就像某些设置向导程序一下,都是在一个窗口中点击"下一步",最后点击完成.大概需要三四个"下一步",我是在窗口上建个多个panel容器控件,再向每个panel容器里添加其他组件,在C#2003里我是这样做的:程序启动时第一个panel控件显示,其它的panel控件隐藏起来,点"下一步"按钮控件的时候第二个panel显示,其他的panel隐藏,上一步则是相反,直到最后"完成",但在C#2005里这样

Android为按钮控件绑定事件的五种实现方式_Android

一.写在最前面 本次,来介绍一下安卓中为控件--Button绑定事件的五种方式. 二.具体的实现 第一种:直接绑定在Button控件上: 步骤1.在Button控件上设置android:onClick=",其中这个属性的属性值对应的是MainActivity类中的方法名字(自己创建的方法):  步骤2.在MainActivity类中创建相对应的方法: public void demo(View view){ Toast.makeText(MainActivity.this, "第二个按

想做一个如图所示的界面,该用什么控件?

问题描述 想做一个这样的界面,该用哪些控件?1."操作按钮区域"的边框,用的什么控件?2.内里有两个虚线框用的什么控件? 解决方案 解决方案二:按钮背后的边框,你可以使用Panel填上背景色,Panel的大小比Button稍微大一点点即可.至于说虚线框,看看你的开发工具有没有GroupBox之类的.当然使用普通的Rectangle控件直接画也是可以(例如).解决方案三:DevExpress.解决方案四:你都没说用的什么框架啊,WPF的话太简单了,Border就能搞定,重写Button的

vb的按钮控件

使用CommandButton控件 命令按钮控件被用来启动.中断或结束一个进程.单击它时将调用已写入Click 事件过程中的命令. 大多数Visual Basic应用程序中都有命令按钮,用户可以单击按钮执行操作.单击时,按钮不仅能执行相应的操作,而且看起来就象是被按下和松开一样,因此有时称其为下压按钮.详细信息 关于 CommandButton 控件的简单示例,请参阅第三章,"窗体.控件和菜单"中的"单击按钮执行操作". 向窗体添加命令按钮在应用程序中很可能要使用一