求助:如何使一段程序运行的时候,将程序锁定等待程序的运行? 嗯,请教了。我做了成绩的录入系统,点击提交后,系统将把成绩上传至网上,这期间有一段时间,如果用户再次点击就会重复提交,我想在中间加段程序控制,在提交的过程中,锁定原来的系统,等待提交的结果,比如出现个进度条之类的,然后等结果出来后,再解锁可以再次使用。求指点,如何做这段锁定并等待的程序,或者进度条。是用什么样的方法?进程控制吗?还是什么其它方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 触发事件时先直接把button的enable属性设置为false 其实不难呢,很多方法都可以。给你两种最简单的:一、创建一个等待窗口,例如这个窗体叫做Waitclass Wait : Form{ private void Listen() { //一旦提交完毕就要执行这个 this.Close(); }}//Applicationvoid ButtonClick(){ Wait w = new Wait(); w.ShowDialog(this);//用模式对话框(很多人都这么叫)锁定主窗体}第二种就是让按钮不可用呗:private void ButtonClick(){ btnClick.Enable = false; //然后在你的上传完毕事件内使其恢复即可} 提交完成后给个返回值你按钮点击后先判断返回值比如,返回0无效,不执行click事件了,直接retur了非0有效,执行click 貌似showDialog()这个方法的特性吧 用于MDI窗体模式要等这个窗体结束才能回到主窗体 只是貌似 我不太记得了 要不就又线程控制 将上传变成一个线程 等线程返回执行结束了 在让用户操作 对,就是像showDialog()方法似的,但是想在中间把时间添加一下,另外也不能给按钮,不准取消等等。同事说用线程比较好,但我不会用,谁能讲下线程的用法? 不是非要线程吧?出现进度条是可以用线程的,可是锁定用线程就不大靠谱了。线程的使用方法//ApplicationThread newThread = new Tread(new ThreadStart(Post));newThread.Start();private void Post(){ //你的事件}另外用ShowDialog()的话可以在那个窗体里边写事件控制,时间也可以控制。例如:class Wait{ System.Timers.Timer timer = new System.Timers.Timer(); public Wait() { timer.Interval = 3000;//三秒钟后结束 timer.Elapsed += new ..Event(Elapsed); } private void Elapsed(..) { this.Close();//到了时间后关闭此窗体 } private void Shown(..) { timer.Start();//窗体第一次显示完成后开始计时 }}//下面是执行完毕后自动关闭窗体的//首先假设有一个Post控件,这个控件有其Post()方法和一个State属性//还有一个Posted()事件class Wait{ private Post ThePostControl; public Wait(Post postControl) { this.ThePostControl = postControl; postControl.Posted += new Event(Posted); } private void Shown(..) { this.ThePostControl.Post();//显示完毕后开始进行传输 } private void Posted(..) { this.Close();//传输完毕之后关闭窗体 }} winform写入txt文档 aspx的这段头标志可以删除吗 在access数据库表中点击某一列,右键菜单点击“升序”,结果排序不合我意,如何设置。请看: 怎样提高C/S应用程序的效率? dev 里面的lookupedit 问题 建立完datatable后,在datagridview里填充时找不到该datatable SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间 C#如何在打开主界面的同时打开登陆界面 c# Bitmap 资源释放 请问,C#中怎么处理API的? .net如何过滤图片 数据库主键
{
private void Listen()
{
//一旦提交完毕就要执行这个
this.Close();
}
}//Application
void ButtonClick()
{
Wait w = new Wait();
w.ShowDialog(this);//用模式对话框(很多人都这么叫)锁定主窗体
}
第二种就是让按钮不可用呗:private void ButtonClick()
{
btnClick.Enable = false;
//然后在你的上传完毕事件内使其恢复即可
}
你按钮点击后先判断返回值
比如,返回0无效,不执行click事件了,直接retur了
非0有效,执行click
貌似showDialog()这个方法的特性吧
用于MDI窗体模式要等这个窗体结束才能回到主窗体 只是貌似 我不太记得了 要不就又线程控制 将上传变成一个线程 等线程返回执行结束了 在让用户操作
对,就是像showDialog()方法似的,但是想在中间把时间添加一下,另外也不能给按钮,不准取消等等。同事说用线程比较好,但我不会用,谁能讲下线程的用法?
线程的使用方法
//Application
Thread newThread = new Tread(new ThreadStart(Post));
newThread.Start();private void Post()
{
//你的事件
}
另外用ShowDialog()的话可以在那个窗体里边写事件控制,时间也可以控制。例如:
class Wait
{
System.Timers.Timer timer = new System.Timers.Timer();
public Wait()
{
timer.Interval = 3000;//三秒钟后结束
timer.Elapsed += new ..Event(Elapsed);
} private void Elapsed(..)
{
this.Close();//到了时间后关闭此窗体
} private void Shown(..)
{
timer.Start();//窗体第一次显示完成后开始计时
}
}//下面是执行完毕后自动关闭窗体的
//首先假设有一个Post控件,这个控件有其Post()方法和一个State属性
//还有一个Posted()事件class Wait
{
private Post ThePostControl;
public Wait(Post postControl)
{
this.ThePostControl = postControl;
postControl.Posted += new Event(Posted);
} private void Shown(..)
{
this.ThePostControl.Post();//显示完毕后开始进行传输
} private void Posted(..)
{
this.Close();//传输完毕之后关闭窗体
}
}