DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ファイル・フォルダコピーの中断方法

分類:[.NET]

2004/01/15(Thu) 18:10:41 編集(投稿者)

はじめまして。こちらでVB.netを一から勉強している者です。
一つ質問があります。
http://dobon.net/vb/dotnet/file/copyfolder.html
こちらの情報通りにファイル・フォルダをコピーさせています。
でエクスプローラー上でのコピーのようにキャンセルボタンから
意図的にいつでも中断させたいのですが、その方法が皆目見当つきません。

まずフォーム上に中断ボタンをおいてそのクリック時に...と思っていたら、
コピー中はフォーム上のボタンが一切押せない(反応しない)です。
制御が全部とられちゃってる感じ?な訳で。

どんなアプローチをすれば良いのかヒントをお願いします。
■No2161に返信(ひろさんの記事)
> まずフォーム上に中断ボタンをおいてそのクリック時に...と思っていたら、
> コピー中はフォーム上のボタンが一切押せない(反応しない)です。
> 制御が全部とられちゃってる感じ?な訳で。

作業中にボタンを有効にする方法としては、マルチスレッドにするか、Application.DoEventsを挟むかのどちらかになるでしょう。とりあえず、ループ内の適当な位置に
Application.DoEvents()
を入れておき、ボタンが押されたらフラッグ等によりループから抜け、処理がそれ以上行われないようにしてみてください。しかし、DoEventsの使い方は意外と難しいので、注意してください。
> Application.DoEvents()
アドバイス有り難うございます。DoEventsを色々と試してみてまたご報告させて頂きます。
> Application.DoEvents()
> を入れておき、ボタンが押されたらフラッグ等によりループから抜け、処理がそれ以上行われないようにしてみてください。

上記のフラグ処理で呆気なくループから抜けられました。


>しかし、DoEventsの使い方は意外と難しいので、注意してください。
ですね。
何も出来ない状態だったので幸いとばかりに無視していた部分で幾つもエラーが確認できましたのでチェックは念入りに行います。

どうもありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板