プロが教えるわが家の防犯対策術!

private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i <= 9; i++)
{
Microsoft.VisualBasic.Interaction.AppActivate("メモ帳");
SendKeys.Send("テスト{ENTER}");
label1.Text = i.ToString()+ "/10回目";
System.Threading.Thread.Sleep(1000);
}
}

C#でメモ帳へ1秒ごとにテキストを10回表示するプログラムを作りました。

ラベルに進行状況を表示したいのですがすべての処理が終わったあとに10/10回目と表示されるだけで途中の1/10回目、2/10回目・・・を表示できません。アドバイスをお願いします。

質問者からの補足コメント

  • すいませんソフトはMicrosoft Visual C# 2010 Expressを使用しています。

      補足日時:2015/02/22 11:13

A 回答 (1件)

Sleepの前にDoEvent差し込むと簡単ですが、予期できない副作用を沢山招くのでお勧めしません。


SendKeysを正しく呼び出しているか表示したいだけであれば、ラベルへの表示ではなく、
Debug.Printを使う方が適切かと思います。
またSendKeysはキーストロークをエミュレーションしているだけなので、確実に、"テスト"とメモ帳に送信されるとは限りません。
なので、もし本当にやりたいことが別にあるのであればSendKeys以外を使うことをお勧めします。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます、色々試してみます。

文法的には合ってると思ったのですが意図した通り動かないのはプログラムの難しさですね。

お礼日時:2015/02/23 06:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!