会员登录 用户名: 密码: 登录 新会员注册 [找回密码]
当前位置:编程论坛 >> C/S程序开发专区 >> .Net编程论坛 >> 在form中怎么用线程控制两个lable随机移动
首页
中资源
  发表一个新主题  发表一个新投票  回复主题 您是本帖的第 625 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
 * 贴子主题:在form中怎么用线程控制两个lable随机移动 悬赏分30 [提问中] 报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 woohyuk117 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:155
  专家分:0
  提问帖:2/1
  回答帖:0
  总帖数:5
  经验值:61
  注 册:2008-3-20
给woohyuk117发送一个短消息 把woohyuk117加入好友 查看woohyuk117的个人资料 搜索woohyuk117在.Net编程论坛的所有贴子 引用回复这个贴子 回复这个贴子楼主
发贴心情 

在form中怎么用线程控制两个lable随机移动

帮帮忙!给详细一点代码!我是菜鸟!谢谢!
发帖:2008-4-21 20:27:00
  鲜花(0)  鸡蛋(0)
 姜明 帅哥哟,离线,有人找我吗?
  
  
  等 级:论坛游侠
  积 分:6395
  专家分:4064
  提问帖:0/0
  回答帖:307
  总帖数:342
  经验值:404
  注 册:2008-2-6
给姜明发送一个短消息 把姜明加入好友 查看姜明的个人资料 搜索姜明在.Net编程论坛的所有贴子 引用回复这个贴子 回复这个贴子2
发贴心情 

有段代码,供你参考下,基本功能实现了,但是还需要修正

第一个label 移动没事,但是生成第二个后就无法移动了!现在头晕了~绕不出来了!

Label label;
int threadNum = 0;//线程及标签计数器
/*实例化label*/
private void NewLable()
{
string zimu = this.suiji();//调用随机函数
label = new Label();//声明
label.Location = new System.Drawing.Point(195, 20);
label.Size = new System.Drawing.Size(11, 12);
label.Name = zimu+threadNum.ToString();
label.Text = zimu;
groupBox1.Controls.Add(label);
}
private void timer1_Tick(object sender, EventArgs e)
{
NewLable();
Thread thread = new Thread(new ThreadStart(XiaYi));
thread.Name=threadNum.ToString();
thread.Start();
threadNum++;
}

/*字母X坐标,字母Y坐标,字母Y坐标初始值,载体的宽,载体的高*/
int labe1X = 0, labe1Y = 0, BoxWidth = 0, BoxHeight = 0;
private void XiaYi()
{
/*初始化*/
labe1X = label.Location.X;
labe1Y = label.Location.Y;
BoxWidth = groupBox1.Size.Width - 11;
BoxHeight = groupBox1.Size.Height - 228;
/*实现横向下移动*/
while (labe1Y != BoxHeight)
{
if (labe1X == BoxWidth)
{
labe1Y = labe1Y + 20;
while (labe1X != 0)
{
labe1X--;
label.Location = new Point(labe1X, labe1Y);
Thread.Sleep(10);
}
}
else
{
labe1Y = labe1Y + 20;
while (labe1X != BoxWidth)
{
labe1X++;
label.Location = new Point(labe1X, labe1Y);
Thread.Sleep(10);
}
}
}


魔非魔、道非道,善恶在人心……

发帖:2008-4-22 6:42:00
 85775721 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:210
  专家分:0
  提问帖:0/0
  回答帖:1
  总帖数:3
  经验值:56
  注 册:2008-4-23
给85775721发送一个短消息 把85775721加入好友 查看85775721的个人资料 搜索85775721在.Net编程论坛的所有贴子  引用回复这个贴子 回复这个贴子3
发贴心情 

这个倒好做,我想做个就是lable标签随机慢慢移动,而不是在屏幕上闪来闪去的。不是向楼上说的那样平行的移动,就是很自然的移动的。是慢慢移动。

生命不息,盗版不止!

发帖:2008-4-23 22:26:00
 shaka2008 帅哥哟,离线,有人找我吗?处女座1986-8-27
  
  
  等 级:初出江湖
  积 分:211
  专家分:0
  提问帖:0/0
  回答帖:1
  总帖数:2
  经验值:53
  注 册:2008-4-29
给shaka2008发送一个短消息 把shaka2008加入好友 查看shaka2008的个人资料 搜索shaka2008在.Net编程论坛的所有贴子  引用回复这个贴子 回复这个贴子4
发贴心情 

这个问题还真没怎么研究过……
发帖:2008-5-1 14:02:00
 苦寒 帅哥哟,离线,有人找我吗?
  
  
  等 级:论坛游民
  积 分:2228
  专家分:1131
  提问帖:0/0
  回答帖:152
  总帖数:163
  经验值:252
  注 册:2008-4-25
给苦寒发送一个短消息 把苦寒加入好友 查看苦寒的个人资料 搜索苦寒在.Net编程论坛的所有贴子 引用回复这个贴子 回复这个贴子5
发贴心情 

姜明的代码问题好大啊,哪能这样使用多线程呢?你使用timer来启动线程,这不是要启动很多个线程吗?楼主要的是2个线程哦!
最关键是这一句啊:“NewLable();“,怎么能每次产生一个新的label呢?而且后面的条件判断也不对啊?哪能用==来判断呢,你的宽、高不是20的整数倍啊!看你专家分还比较高,仍需要修炼哦!

一生一死一悲欢
一冬一夏一苦寒

发帖:2008-5-3 1:13:00
 W65138497 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:164
  专家分:5
  提问帖:2/2
  回答帖:7
  总帖数:23
  经验值:92
  注 册:2008-3-19
给W65138497发送一个短消息 把W65138497加入好友 查看W65138497的个人资料 搜索W65138497在.Net编程论坛的所有贴子  引用回复这个贴子 回复这个贴子6
发贴心情 

你可以不用坐标来移动,FORM中只能设置左边和顶部的一定,那样要简单些
发帖:2008-5-12 6:57:00
 W65138497 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:164
  专家分:5
  提问帖:2/2
  回答帖:7
  总帖数:23
  经验值:92
  注 册:2008-3-19
给W65138497发送一个短消息 把W65138497加入好友 查看W65138497的个人资料 搜索W65138497在.Net编程论坛的所有贴子  引用回复这个贴子 回复这个贴子7
发贴心情 

你或则有一个DO-WHILE来实现,先执行一次,如果他线程的状态是运行的就循环一次,不然你的移动会出问题。
发帖:2008-5-12 7:00:00

本主题贴数7,分页:[上一页] [1] [下一页]
 *快速回复:在form中怎么用线程控制两个lable随机移动  [ 回帖是一种美德 :) ]
会员账号 用户名    还没注册?    密码    忘记密码?
内容
  • HTML标签: 不可用
  • UBB标签: 可用
  • 贴图标签: 可用
  • 多媒体标签:可用
  • 表情字符转换:可用
  • 上传图片:不可用
  • 最多15KB
  • 点击表情图即可在帖子中加入相应的表情
                                
    邮件回复 显示签名   [Ctrl+Enter直接提交贴子]

    管理选项锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告