- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ループ中にlabel_clickの読み込みを認識する)
ループ中にlabel_clickの読み込みを認識する
このQ&Aのポイント
- Microfoft Visual Studio 2005を使用してC#で開発されたWindowsアプリケーションで、ループ中にラベルがクリックされたことを認識したい場合、どのように実装すればよいでしょうか?
- 質問者はForm1_Loadメソッド内で無限ループを実行し、ラベルがクリックされた場合に特定の処理を実行したいと考えています。どのような方法が最適なのでしょうか?
- C#を使用してWindowsアプリケーションを開発している際、ループ中にラベルがクリックされたことを検知する方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
あるプロシージャの中でループしているときに他のコントロールでのイベントを認識させるなら Application.DoEventsなどを呼び出してWindowsのメッセージポンプを機能させましょう LabelのClickイベント自体は別途記述して そのフォームクラスのフィールドにクリックされたのかどうかを記憶しておきます そのループ処理中でフィールドをチェックするようにすればいいと思います boolean lbl1Click= false, lbl2Click = false; などと宣言しておいて void lblClick( s as object, e as Eventargs ) { Label lbl = (Label)s; if ( lbl.Name == "label1 ) { lbl1Click = true; } esle if ( lbl.Name == "label2" ) { lbl2Click = true; } } といった具合でクリックイベントを処理します ループ処理側では while( 1 ) { Application.DoEvents(); if ( lbl1Click ) { // Label1がクリックされた場合の処理 } else if( lbl2Click ) { // Label2がクリックされた場合の処理 } } といった具合でしょう …
お礼
おお!できました! メッセージポンプについても勉強になりました。 ありがとうございましたm(__)m