黑马程序员技术交流社区

标题: 怎么实现文字一直左滚动或点击右滚动就一直右滚动? [打印本页]

作者: 苟于伟    时间: 2013-5-8 10:57
标题: 怎么实现文字一直左滚动或点击右滚动就一直右滚动?
本帖最后由 苟于伟 于 2013-5-10 09:37 编辑

下面是我的方案:
  1. for (int i = 0; i<textBox1.Text.Length; i++)
  2.             {
  3.                 string left = textBox1.Text;
  4.                 string a = left.Substring(1);
  5.                 char f = left[0];
  6.            
  7.                 textBox1.Text = a + f;
  8.                 textBox1.Update();
  9.                 System.Threading.Thread.Sleep(500);
  10.                
  11.             }
  12.             

  13.       

  14.       
  15.             for (int i = 0; i < textBox1.Text.Length; i++)
  16.             {
  17.                 string t = textBox1.Text;
  18.                 char r = t[t.Length - 1];
  19.                 string b = t.Substring(0, t.Length - 1);
  20.                 textBox1.Text = r + b;
  21.                 textBox1.Update();
  22.                 System.Threading.Thread.Sleep(500);
  23.             }


  24. //上面是以文本长度为例

  25. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




  26. //如果把循环条件改为(int i = 0; i>=0; i++)时,是个以可以直循环,但会无响应。也就是死循环。求各位帮我改改,谢谢!
  27. for (int i = 0; i>=0; i++)
  28.             {
  29.                 string left = textBox1.Text;
  30.                 string a = left.Substring(1);
  31.                 char f = left[0];
  32.            
  33.                 textBox1.Text = a + f;
  34.                 textBox1.Update();
  35.                 System.Threading.Thread.Sleep(500);
  36.                
  37.             }
  38.            
  39.             for (int i = 0; i >=0; i++)
  40.             {
  41.                 string t = textBox1.Text;
  42.                 char r = t[t.Length - 1];
  43.                 string b = t.Substring(0, t.Length - 1);
  44.                 textBox1.Text = r + b;
  45.                 textBox1.Update();
  46.                 System.Threading.Thread.Sleep(500);
  47.             }
复制代码

作者: 陈志盟    时间: 2013-5-8 11:48
本帖最后由 陈志盟 于 2013-5-8 12:23 编辑

你可以把向左滚动写在一个方法里,然后使用定时器,让他不停的滚动
  1. private void btnLeft_Click(object sender, EventArgs e)
  2.         {
  3.             string str = textBox1.Text;
  4.             string leftstr = str.Substring(0, 1);
  5.             string leststr = str.Substring(1, str.Length - 1);
  6.             textBox1.Text = leststr + leftstr;

  7.         }

  8. private void Form1_Load(object sender, EventArgs e)
  9.         {
  10.             Timer time1 = new Timer();
  11.             time1.Tick += new EventHandler(btnLeft_Click);
  12.             time1.Interval = 1000;
  13.             time1.Start();
  14.         }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2