刚开始阅读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);
}
应该观察每个可观察的鼠标或键盘事件。 谢谢
答案 0 :(得分:3)
抱歉,我不确定这是否正常工作(现在无法试用),但它应该让你入门。
var mouseDown = Observable.FromEvent<MouseButtonEventArgs>(frmMain, "MouseDown")
.Where(x => x.LeftButton == MouseButtonState.Pressed);
mouseDown.Subscribe(() => Debug.WriteLine("left click detected.");