for(int a=0;a<10;a++)
{
txtblck =txtblk+ a.ToString();
}
この中で、txtbox は最後にすべてのテキストを表示します。テキストを1つずつ表示したい。
for(int a=0;a<10;a++)
{
txtblck =txtblk+ a.ToString();
}
この中で、txtbox は最後にすべてのテキストを表示します。テキストを1つずつ表示したい。
これを試すことができます
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();
}
}