C#应用程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 15:35:32
我在C# 里写了一个交换两个按钮位置的函数
然后添了一个事件里,写了两条代码:
change(button1,button2);
change(button1,button3);
程序能够正常运行!
我想做出这样的效果怎么实现:
先执行change(button1,button2);
等待1秒钟,再执行change(button1,button3);
怎么做?
交换函数:
void change(Button b1, Button b2)
{
Point p = new Point();
p = b1.Location;
b1.Location = b2.Location;
b2.Location = p;
}
加Thread.Sleep(1000);理论上可以
实现的时候并没有什么效果.
(还有一点,我真正要做的东西,会不停交换很多按钮!)
QQ:99501485
答案满意的话,再加50分
我知道timer控件可以实现,也许Thread也能实现
但你们谁真正用这些做出来了吗?

using System.Threading;

private void button4_Click(object sender, EventArgs e)
{
change(button1,button2);
Thread.Sleep(1000);
change(button1, button3);
}

在主线程Sleep很不安全,主窗口会卡死。另起线程或用Timer。

用线程操作!!!
新建一个线程
Thread thd=new thread(new aa());
thd.start();

void aa()
{
while(true)//让其一直循环,当然你也可以写条件,让其在条件允许的情况下循环
{
change(button1,button2);
thread.sleep(1000);//等待1秒
change(button1,button3);
}
}
***************************

实现的时候,没有效果是正常的,因为停留的时间很短,所以这种效果不好显示出来,你可以增加一下sleep时间,比如调到5000,你就可以看到效果了。
*************************************
我做出来了,我的项目中就用到了这种方法!!!

用timer控件或者DateTime

timer
点什么就启动,不用的时候就关闭.

就用timer控件,可以满足你的需求