C#でチェックボックスボタンでの動作開始と停止

このQ&Aのポイント
  • C#(Visual C#2012)でチェックボックスボタンをフォームに配置して、そのボタンをONにするとある処理を開始し、OFFにするとその処理が停止する方法について説明します。
  • この処理とは、WebBrowserオブジェクトでネットを巡回して取得した情報を解析する処理です。処理時間は1回につき数分かかります。デリゲートやMethodInvokerを使用して、チェックボックスボタンの状態変化に応じて処理を開始・停止する方法を紹介します。
  • 初めてこのような処理を行う場合でも、参考になるサイトや具体的なコード例を提供しますので、スムーズに実装できるようにサポートいたします。
回答を見る
  • ベストアンサー

C#でチェックボックスボタンでの動作開始と停止

お世話になります。 C#(Visual C#2012)でチェックボックスボタンをフォームに配置して、そのボタンをONにすると ある処理を開始し、OFFにするとその処理が停止するようにしたいのですが どのようにすれば良いのでしょうか? ある処理とは、WebBrowserオブジェクトでネットを巡回して取得した情報を解析する処理です。 この部分は完成しています。 この処理時間は1回につき数分かかります。 この処理をチェックボックスボタンをONにすると開始し、OFFにすると処理の途中で停止するようにしたいのです。 何分このようなことは初めてで、ネットで検索していますがいまいちわかりません。 デリゲートとかMethodInvokerとかこの辺りの話なのでしょうか? 参考になるサイトなどでも大丈夫ですので取っ掛かりを教えてください。 どうぞ宜しくお願いします。

  • suffre
  • お礼率76% (2013/2633)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ループしているならそのループ内、タイマーならタイマーイベント内、スレッドならスレッド内で、 チェックボックスの状態がOFFなら処理を終了もしくは一時停止させればいいのでは。 数分かかる特定の命令が走行した際に、そいつを強制停止させることはできませんよ。 1回の実行で、いくつかの処理があり、総所要が数分ということなら、中止するタイミングを それぞれの処理が走行する前に設けてあげればいいでしょう。

suffre
質問者

お礼

ありがとうございます。 backgroundeWorkerとか使ってみましたが、いまいちうまくいかなかったので No1さんがおっしゃっている方法でやることにしました。

関連するQ&A

  • チェックボックスの使い方について

    1つのチェックボックスをonした時に複数のチェックボタンを同時にオンにしたい 例) チェックボックスAをオンすると B,C,Dをもオンにする。 前回の質問が行方不明になり、再度 同じ質問をしていますが、ごめんなさい。 どなたか、宜しくお願いします。

  • C#2005 Webbrowserコントロール での自動チェックボックス

    Visual C# 2005 で、 Webbrowser コントロールでの自動処理を試みているのですが、 チェックボックスに自動チェックを入れたいのですが、 やり方分かる方、ご教示いただけませんでしょうか。 <input type="checkbox" name="example" value="サンプル">サンプル

  • PHPのチェックボックス受け渡し

    現在、PHPにて以下の機能を作りたいと思っています。 表の各マスの中に ○ または × が入っている。(データベースから取得します) 「編集」ボタンを押すと、○はチェックボックス(オン)に、×はチェックボックス(オフ)に変化する。 ユーザーはチェックボックス(オン/オフ)の操作をする。 「更新」ボタンを押すと、操作の結果に応じて、チェック(オン)は○に、チェック(オフ)は×に変化する。 データベースの更新を行う。 データベースから○/×の取得までは出来たのですが、 チェックボックスと表示の受け渡し方法が分かりませんが、どうしたら良いのでしょうか?

    • 締切済み
    • PHP
  • チェックボックスのon/offで

    VB2008EEです。 チェックボックスにチェックを入れると指定したボタン上のテキストが「aaa」、 オフにすると「bbb」と切り替わるように出来るでしょうか? チェックボックスをオフにすると指定したラジオボタンがグレーアウトして 押せないようにして、オンにするとグレーアウトが解除されて選択できるように出来るでしょうか?

  • DataGridViewのチェックボックスのON、OFFの判定方法

    お世話になります。ご協力お願いします。 環境:VS2008 .Net FrameWork3.5 言語:C# 質問内容:ボタンを押下したら、DataGridViewの列に設定したチェックボックスのON,OFFを判定して処理を行いたい。 現状以下の方法で実現は出来ていますが、とても回りくどい方法になっています。 正しい処理を教えて頂けないでしょうか。 1.DataGridViewにて、列にチェックボックスを設けている。 2.truevaluesプロパティにtrueをセットしている。 ボタンを押下したらチェックボックスのON、OFFを判定する為に、DataGridViewの行を ループさせて判定させています。 for(int i=0;i < DataGridView.Count;i++){ ___if((string)DataGridView.Rows[i].Columns[0].values == "true") ___{ ______処理 ___} } お願い致します。

  • VBAのチェックボックス結果を集計したい

    Excel上でVBAのチェックボックスやオプションボタンを使ったアンケートを作りました。 このアンケート結果(チェックボックスなどのオン・オフ)を集計したいのですが、回収件数が多いので、自動的に処理したいのです。 複数のExcelファイルが回収して集まってきます。 どのようなマクロやVBAを作ればよいか、教えて下さい。

  • チェックボックス+変数+値

    flash初心者なのですが、flashのチェックボックスとボタン、ダイナミックテキストのテキストボックスを使ってチェックが入ればボタンを押すとテキストボックスに3を表示、チェックが入ってなければ5を表示させたいと考えています。 チェックボックスの名前はc_boxとしています。 テキストボックスの名前はzとしています。 どのようにすればよいか教えてください。 ボタンに on(press){if(c_box=true) {c_box=3}else{c_box=5} } などといろいろと試行錯誤を繰り返している状態です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 複数のチェックボックス

    困ってます。 前回ボタンクリックでチェックボックス768個を全部ONにしたりOFFにしたりするプログラムを教えてもらい何とかできたのですが、768個のチェックボックスを1個1個押したときのプログラムを一つにまとめたい場合は、どうすればよかったのでしょうか。 前回教えてもらった物をヒントに作ったのですが思った動きをしません。 初心者にわかりやすく教えてもらえますか。 ボタンクリックと同じ場所に飛ばしているせいか  Select Case DirectCast(sender, Button).Name のbuttonでエラーが出ることが分かっています。 ただいろいろやりましたがSelectCase文で行っても1個のチェックボックスには反応しますがほかのチェックボックスは無視します。 よろしくお願いします。

  • PHPでチェックボックスの結果を離れた配列に入れる

    PHPにて、複数あるチェックボックスの操作結果(オン/オフ)を変数に格納する方法を探しています。 予定として プログラム実行 → ボタンが1つと、チェックボックスが複数表示される → チェックボックス操作 → ボタンを押す → 複数のオン/オフ状況が配列に格納される といったものを作りたいと考えています。 現在はそのためのテストとして、ボタンを押した際のオン/オフの状況が画面に順に表示されるものを作っていますが、変数がUndefined Indexであると言われ、表示することができません。 現在のプログラムは下の通りです。 実際のプログラム上では、(1),(2),(3)はそれぞれソース内のかなり離れた場所にあります。 各チェックボックス(各<form>~</form>)毎にボタンを用意していないのが原因であるとは思うのですが、ボタンは特定の箇所に1つだけ用意したいと考えています。 またチェックボックス表示部とボタン表示部は(ソース的に)離れているため、 ボタン表示部で<form>を開いて、開いたまま進み、チェックボックス表示部が終わってやっと閉じる、という方法は難しいと思います。 どうすればチェックボックスの結果を離れた箇所にある配列に入れることができるのでしょうか。 宜しくお願いします。 [regist.php] <?php //(1) 更新ボタンを押すとチェックボックスのon/off結果が表示される if(isset($_POST['cmd_Print'])){ $check = $_POST["cb"]; for($i=0; $i<count($check); $i++){ print "${check[$i]}<br>"; } } //(2) 更新ボタンの表示 print("<form method=\"post\" action=\"regist.php\">"); print("<input type=\"submit\" name=\"cmd_Print\" value=\"結果表示\">"); print("</form>"); //(3) チェックボックス(on,off)を交互に表示 for($i=0; $i<5; $i++){ //チェックボックスをオンの状態で表示 print("<form method=\"POST\" action=\"./regist.php\">"); print sprintf('<input type="hidden" name="cb[]" value="off">'); print sprintf('<input type="checkbox" name="cb[]" value="on" checked="checked">'); print("</form>"); //↑チェックボックス操作後、オフの状態なら$cb[]に"off"を、オンの状態なら$cb[]に"on"を入れる //チェックボックスをオフの状態で表示 print("<form method=\"POST\" action=\"./regist.php\">"); print sprintf('<input type="hidden" name="cb[]" value="off">'); print sprintf('<input type="checkbox" name="cb[]" value="on">'); print("</form>"); //↑チェックボックス操作後、オフの状態なら$cb[]に"off"を、オンの状態なら$cb[]に"on"を入れる } ?>

    • 締切済み
    • PHP
  • C# メッセージボックスのOKボタンを自動クリック

    C#のwebBrowserでメッセージボックス(OKとかキャンセルとかのボタンがついたフォーム)のOKボタンを自動で押したいです。 メッセージボックスはhtmlのjavascriptで発生しており、何をどうすれば良いか分かりません。 拙い説明で伝わったのかどうか不安ですが、ご教授下さい。