0

刚开始阅读 Reactive 扩展。我正在尝试观看一个简单的鼠标左键单击我的 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 回答