大量のInsert文を実行中にLabelのtextを変更したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-11-18 14:54
VB2005です。
フォームを読み込んだときにDataGridViewに20,000件ほどのデータを表示させています。 ButtonをクリックしたときにDataGridViewに表示しているデータをDo - Loop文で全件Insertしています。 このときInsertの処理に時間がかかるので、処理中はLabel1のtextに「処理中」とし 処理が終わったらLabel1に「終了」と表示させたいのですが ButtonをクリックしてもLabel1のtextは変わらず(この間はDataGridViewがフリーズ?している) 処理が終わったらLabel1は「終了」となります。ソースは下記の通りです。
処理中の間だけLabelのtextを変更するのはどうすればよいのでしょうか? | ||||
|
投稿日時: 2008-11-18 15:05
Label1.Text = "処理中"
の直後に Application.DoEvents() を挿入するとどうでしょうか。 | ||||
|
投稿日時: 2008-11-18 15:13
できましたorz これだけでよかったとは・・・勉強不足過ぎですね。 Kingさんありがとうございました。 | ||||
|
投稿日時: 2008-11-18 15:43
すみません。
状況によっては Label1.Update() した方が安全かもしれません。 http://dobon.net/vb/dotnet/programing/displayprogress.html | ||||
|
投稿日時: 2008-11-18 16:51
参考までに。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=44349&forum=7 |
1