0

Reactive extensions について読み始めました。winformでマウスの左ボタンをクリックするのを見ようとしています。クリックがある場所 (フォームを含むフォーム上の任意のコントロール) を意味します。「クリックが検出されました」というメッセージを表示したいだけです。これまでのところ、

var mouseDown = Observable.FromEvent<MouseButtonEventArgs>(frmMain, "MouseDown");
//missing code please fill here 
mouseDown.Subscribe(() => Debug.WriteLine("left click detected.");

最初の行でマウス イベントが検出されることはわかっています。マウスの左ボタンをクリックするだけです。これをよりよく理解できるように、動作するコードを投稿してください。今、.takeuntil など、これまで使用したことのない流行語で追い風になっています。私の質問をさらに洗練させます。Rxに相当するものは何ですか

protected override void WndProc(ref Message m)
{
    Console.Writeline("{0}", m.Msg);
}

これにより、観察可能なすべてのマウスまたはキーボード イベントが観察されます。ありがとうございました

4

1 に答える 1

3

申し訳ありませんが、それが機能するコードかどうかはわかりませんが (今は試すことができません)、開始する必要があります。

var mouseDown = Observable.FromEvent<MouseButtonEventArgs>(frmMain, "MouseDown")
                      .Where(x => x.LeftButton == MouseButtonState.Pressed);

mouseDown.Subscribe(() => Debug.WriteLine("left click detected.");
于 2011-06-10T08:07:40.947 に答える