1

タイトルが示すように、マウスのクリックを検出する方法を探しています。私は完全に愚かではありませんが、この場合、イベントを使用できません。なんで?それを使う関数は全く別のクラスにあるからです。(そして、クラスとイベントにサブルーチンを配置する方法がまったくわかりません, e, 一緒に)

では、正確には、サブ内でのマウス クリックをどのように検出するのでしょうか? これは、Windows プログラミング用です。コードを探している場合:

Public Class Ball
    Public Sub ResetBall() 
       MainForm.GFX.drawstring("Click to continue", Main.GameFont, Brushes.Orange, 300, 290) 
'Here! How do I detect a click here? D:
    End Sub
End Class

ありがとう

編集:これに対する可能な解決策を見つけました:

    AwaitingClick = True
    Main.TmrMain.Stop()
    Main.TmrTime.Stop()

    Main.GFX.DrawString("Click to continue", Main.GameFont, Brushes.Orange, 300, 290)
    Main.Invalidate()
  'How do I stop the program from continuing? D:
    Main.TmrMain.Start()
    Main.TmrTime.Start()
4

1 に答える 1

4

これは WinForm プロジェクトですか? その場合、UI はシングル スレッドで実行されるため、マウス クリックが発生するまで「プログラムの続行を停止」することはできません。UI スレッドをビジー状態にしておくと、クリックを検出して処理することができなくなります。

いずれにせよ、手続き型プログラミング手法から離れて、イベント駆動型の方法で設計を再考する必要があります。ボタンまたはラベルを表示し、クリックされるのを待ってから続行する必要がある場合は、単にボタンまたはラベルを表示してから、残りのコードをそのコントロールのクリック イベント ハンドラーに配置する必要があります。

于 2012-12-30T21:25:24.940 に答える