如何为系统变量触发事件?

时间:2016-11-29 02:15:29

标签: c# winforms events

我想在Application.OpenForms.Count更改时发生火灾事件?

2 个答案:

答案 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子类并将其用作基础。使用适用于您的用例的事件增加和减少您自己的计数器。