C# for循环 实现字符循环显示

如:str1="Helloworld";把str1像走马灯一样循环显示在textbox中.请用c#编写,并给出代码.谢谢!!... 如: str1 = "Hello world";
把str1像走马灯一样循环显示在textbox中.
请用c#编写,并给出代码.谢谢!!
展开
 我来答
bigsolomon
2011-12-16 · TA获得超过233个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:160万
展开全部
这种需求用For能做到,但是要用到Thread.Sleep(),一般都不会这么做,一般的做法是用Timer,如
class Program
{
static string str1 = "Hello World";
static int index = 0;
static void Main(string[] args)
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);//指定每个间隔调用的函数
timer.Interval = 1000;//设置间隔,单位毫秒
timer.Start();//开始
Console.Read();
}

static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Console.Write(str1[index++]);
index = index % str1.Length;
}
}
这段代码稍加修改就可以用到WinForm里面了,自己改一下吧~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_神__仙_
推荐于2016-04-16 · TA获得超过1257个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:530万
展开全部
一楼的,走马灯可不是一个一个蹦的
要计算文本框的长度和字体的宽度,算出能显示多少位,根据字符串长度决定添加多少个空格,
根据字符串加载顺序和移位来实现走马灯效果。

string str1 = "Hello World!";
public Form1()
{
InitializeComponent();
this.textBox1.Text = str1;
Timer tmr = new Timer();
tmr.Interval = 100;
tmr.Tick += new EventHandler(tmr_Tick);
tmr.Start();
}
bool isOver = true;
int index = 0;
private void tmr_Tick(object sender, EventArgs e)
{
if (isOver)
{
if ((textBox1.Text.Length - this.str1.Length) * textBox1.Font.Size / 2 < this.textBox1.Width)
{
textBox1.Text = " " + textBox1.Text;
}
else
{
textBox1.Text = "";
index = 0;
isOver = false;
}
}
else
{
if (index < this.str1.Length)
textBox1.Text = str1.ToCharArray()[str1.Length - 1 - index++] + textBox1.Text;
else
{
textBox1.Text = " " + textBox1.Text;
isOver = true;
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式