我想在Application.OpenForms.Count
更改时发生火灾事件?
答案 0 :(得分:2)
以下是使用Rx非常简单的方法。首先,NuGet“System.Reactive.Windows.Forms”,然后你可以这样做:
IDisposable subscription =
Observable
.Interval(TimeSpan.FromMilliseconds(100.0))
.Select(n => Application.OpenForms.Count)
.DistinctUntilChanged()
.Subscribe(count =>
{
/* Changed so do something here */
Console.WriteLine(count);
});
这显然是一种基于投票的解决方案,因此您需要根据需要选择合适的TimeSpan
。
要停止订阅,关闭应用程序时,只需致电subscription.Dispose();
。
答案 1 :(得分:1)
你不能轻易搞定。更好的是创建自己的Form
子类并将其用作基础。使用适用于您的用例的事件增加和减少您自己的计数器。