プログラムに大量のテキストを投稿させようとしています。ユーザーは、テキスト、メッセージの量、およびメッセージの配信速度を入力します。プログラムがビジー状態の場合、ボタンのテキストは「開始」ではなく「停止」にする必要があります。最初に起動した後にボタンを押して強制的に停止すると、テキストは「開始」に戻りますが、コードが適切であり、エラーを生成しません。
これは、何らかの理由でテキストが更新されていないためだと感じています。Invalidate() と Update() でフラッシュしようとしましたが、うまくいきません。これを修正する方法は?
コードは次のとおりです。
private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == "Start")
{
isEvil = true;
button1.Text = "Stop";
Thread t = new Thread(StartTyping);
t.Start(textBox1.Text);
}
else
{
isEvil = false;
button1.Text = "Start";
}
}
private void StartTyping(object obj)
{
string message = obj.ToString();
int amount = (int)numericUpDown2.Value;
Thread.Sleep(3000);
for (int i = 0; i < amount; i++)
{
if (isEvil == false)
{
//////This does NOT work
//button1.Text = "Start";
//button1.Invalidate();
//button1.Update();
//button1.Refresh();
//Application.DoEvents();
break;
}
SendKeys.SendWait(message + "{ENTER}");
int j = (int)numericUpDown1.Value * 10;
Thread.Sleep(j);
}
}