| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 741 人关注过本帖
标题:关于让字逐个显示显示问题。
只看楼主 加入收藏
yob
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-1-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
关于让字逐个显示显示问题。
        private void timer1_Tick(object sender, EventArgs e)
        {

            {
                string text = "abcdefghi";
                for (int i = 0; i < text.ToCharArray().Length; i++)
                {
                    this.label1.Text += text[i].ToString();
                    Application.DoEvents();
                    System.Threading.Thread.Sleep(100);
                }
                new Form2().Show(); // 显示一个新的 Form2
            }

        }

本人新手。大家多多帮忙。谢谢了。
这段代码是 让abcdefghi 逐个显示完,然后显示新的窗口。然后停止。
可是出现死循环了。
要怎么修改?
求解?
搜索更多相关主题的帖子: abcdefghi void private 
2011-01-06 13:11
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:5 
为什么要放timer里 ?

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2011-01-06 15:56
yangglemu
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:521
注 册:2006-9-15
收藏
得分:5 
程序代码:
public partial class Form1 : Form
    {
        string text = "abcdefghijk";
        int len = 1;
        Timer timer = new Timer();
        public Form1()
        {
            InitializeComponent();
            timer.Interval = 500;
            timer.Enabled = true;
            timer.Tick += new EventHandler(timer_Tick);
        }

        void timer_Tick(object sender, EventArgs e)
        {
            if (len < text.Length)
            {
                label1.Text = text.Substring(0, len);
                len++;
            }
            else
            {
                len = 1;
                timer.Stop();
                Form f = new Form();
                f.ShowDialog();
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer.Start();
        }
    }

试着挣个威望!
2011-01-08 10:57
浅水遨游
Rank: 2
等 级:论坛游民
帖 子:18
专家分:81
注 册:2011-1-7
收藏
得分:5 
计时器是单独线程,你要切换到主线程才可更新界面。方法是调用回高函数:lable.invoke();
2011-01-09 18:59
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
收藏
得分:5 
以下是引用yangglemu在2011-1-8 10:57:57的发言:

public partial class Form1 : Form
    {
        string text = "abcdefghijk";
        int len = 1;
        Timer timer = new Timer();
        public Form1()
        {
            InitializeComponent();
            timer.Interval = 500;
            timer.Enabled = true;
            timer.Tick += new EventHandler(timer_Tick);
        }
 
        void timer_Tick(object sender, EventArgs e)
        {
            if (len < text.Length)
            {
                label1.Text = text.Substring(0, len);
                len++;
            }
            else
            {
                len = 1;
                timer.Stop();
                Form f = new Form();
                f.ShowDialog();
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            timer.Start();
        }
    }
if (len < text.Length)
            {
                label1.Text = text.Substring(0, len); //这里的最后一个字符能显示吗?
                len++;
            }
else
            {
                len = 1; //这里可以执行吗?好像这个条件有点问题
                timer.Stop();
                Form f = new Form();
                f.ShowDialog();
            }
2011-01-09 21:19
快速回复:关于让字逐个显示显示问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044047 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved