for(int a=0;a<10;a++)
{
txtblck =txtblk+ a.ToString();
}
在此,txtbox 最后显示所有文本。我想一一显示文本。
for(int a=0;a<10;a++)
{
txtblck =txtblk+ a.ToString();
}
在此,txtbox 最后显示所有文本。我想一一显示文本。
你可以试试这个
for (int a = 0; a < 10; a++)
{
txtblck.Text = txtblck.Text + a.ToString();
Application.DoEvents();
System.Threading.Thread.Sleep(1000);
}
发生这种情况是因为for
循环运行得如此之快,以至于您实际上无法看到TextBox
更改的文本。使用System.Threading.Thread.Sleep方法暂停循环一段时间,以便您可以看到文本的变化:
for(int a = 0; a < 10; a++)
{
txtblck =txtblk + a.ToString();
System.Threading.Thread.Sleep(1000);
}
尝试这样的事情:(我假设您使用的是 WPF,但任何计时器都可以)
System.Windows.Threading.DispatcherTimer timer;
int a, count;
void start() {
timer = new System.Windows.Threading.DispatcherTimer();
a = 0;
count = 10;
timer.Tick += timer_Tick;
timer.Interval = new TimeSpan(0, 0, 1);
timer.Start();
}
void timer_Tick(object sender, EventArgs e) {
updateString();
}
void updateString() {
if (a < count) {
txtblck.Text += a.toString();
a++;
}
else {
timer.Stop();
}
}