Tag: 事件

捕获正在运行的进程的FlashWindowEx事件(C#)

我有一个已经在运行的应用程序 – 它偶尔会触发FlashWindowEx事件(Windows 7图标闪烁)。 我想捕获这个事件,但我似乎无法找到任何关于如何的好信息。 我的想法是它会像这样: 使用Process.GetProcessesByName连接到正在运行的进程 为FlashWindowEx设置事件处理程序 抓住它,做任何事情 我想我的问题是: 这可能吗? 有没有办法从正在运行的进程中获取可用事件列表? 我如何挂钩到FlashWindowEx? 谢谢

属性或变量更改值时的Fire事件

我想为我所拥有的项目添加更多function,这些项目使用了.NET Framework中打包的许多类。 这些相同的类提供了许多属性,这些属性可以非常有用地适应我的项目的function,但是这些类缺少的一件事是事件。 如果每个属性都有一个适当的事件,只要这个属性的值发生变化就会触发,我可以根据这些属性值分配一个事件处理程序。 我制作了一个示例案例,以最简单的方式说明我的目标。 样例: System.Net.Sockets.Socket类( MSDN Docs上的Socket )有一个名为Connected的属性,如果套接字连接到指定的端点,则基本上返回true,否则返回false。 我想要完成的事情很简单。 我希望将此属性保留在“监视”下,当它的值发生变化时,触发一个事件。 这样做对我自己的一个类来说很简单,虽然使用INotifyPropertyChanged接口有点令人讨厌,只是因为我的代码总是改变了我必须手动触发事件的属性值。 不幸的是,据我所知,甚至这种程序都不能应用于.NET Framework中分布的现有Socket类。 好吧,这个问题变得非常广泛,抱歉,但我希望它能够深入了解我的目标。 现在简单地说,我想观察Socket类的Connected属性,当它的值发生变化时,触发一个事件。 如果有可能也使用这种方法来观察变量以及属性,那将是非常棒的,不仅对我而言,对于每个在SO上遇到这个问题的人来说都是如此。 当然,首选一种简单轻量级的方法,但最重要的是,我想了解它是如何完成的,所以将来我可以将它大规模地应用到其他类中。 我意识到我问了很多。 非常感谢。 有问题请问。

绑定/引用XAML WPF的方法

我有这个xaml <ControlTemplate x:Key="TitledWindowControlTemplateKey" x:Name="PART_ControlTemplate" TargetType="{x:Type l:TitledWindow}" 我的c#代码: namespace My.Windows { public partial class TitledWindow : Window { public void Test() { MessageBox.Show(“Test”); } } } 问题是我收到以下错误: 错误1 ‘ResourceDictionary’根元素需要ax:Class属性来支持XAML文件中的事件处理程序。 删除MouseEnter事件的事件处理程序,或将ax:Class属性添加到根元素。

并行EventHandler

我希望毫不拖延地同时通知我class级的活动订阅者。 我应该滚动自己的事件处理程序; 使用FCL中的一些支持并行性; 或默认内置System.EventHandler支持这种事件通知方式?

是否有任何理由在提升之前将事件分配给局部变量?

我经常看到如下代码,并想知道是否有任何理由为事件使用局部变量,而不是仅使用事件本身。 在那儿? var handler = OnQueryComplete; if (handler != null) handler(this, new RepositoryEventArgs(results));

C#为什么我在订阅活动时会使用“new”关键字?

订阅以下两种订阅方式有什么区别? receiver.ConfigChanged += Config_ConfigChanged; receiver.ConfigChanged += new EventHandler(Config_ConfigChanged); 似乎它们都以相同的方式工作,但如果是这样,那么使用第二种方法有什么意义呢? 如果取消订阅,以下两种方法的工作方式是否相同? receiver.ConfigChanged -= Config_ConfigChanged; receiver.ConfigChanged -= new EventHandler(Config_ConfigChanged);

C#事件,那个null的东西是什么?

我无法真正理解在提升事件时这个空测试的东西是什么。 说我有这个代码。 class ballClass { public event EventHandler BallInPlay; public void onHit() { if (BallInPlay != null) { BallInPlay(this, new EventArgs()); } else { MessageBox.Show(“null!”); } } } 而且我想在触发onHit()方法时引发BallInPlay。 现在它告诉我BallInPlay是null。 我应该怎样或者用什么“填充”它才能起作用? 谢谢!

什么是在c#中取消订阅事件的正确方法?

我有一个模型类,其中包含我从其他类订阅的事件。 我想在每个类中正确订阅和取消订阅。 首先,我想保证在MyClass中我只取消一次,即使代码只有少数方法。 其次除了MyClass之外还有其他类使用OnMyEvent,因此我不想无意中取消订阅该类中的事件。 MyClass(IModel model) { _model = model; _model.OnMyEvent +=EventHandle; } Close() { _model.OnMyEvent -=EventHandle; } Disconnect() { //I want to check if OnMyEvent has already unsibscribed //Moreover OnMyEvent is used in other classes and //I don’t want to mess up with it here _model.OnMyEvent -=EventHandle; }

只要对表单内的文本框,combobox等进行任何更改,就会触发事件

我正在使用C#WinForm。 它有十几个文本框,combobox和复选框。 winform显示从数据库中检索的信息。 表单上有一个禁用的保存按钮。 我希望能够在更改任何文本框/combobox/复选框时启用它。 是否有一种简单的方法可以做到这一点,而无需为每个项目添加单独的事件处理程序?

最小化/恢复窗口时是否可以禁用动画?

当我单击Windows窗体应用程序中的最小化按钮时,我不希望它执行经典的Windows最小化动画(窗口转到任务栏)。 据我所知,没有Minimize事件,我可以使用Resize,但我不知道如何检测我是否点击了最小化按钮。 我尝试使用if ( WindowState = FormWindowState.Minimized ) { … } ,但无论如何都会动画并在之后触发代码。 有没有办法检测最小化按钮点击? 有没有办法禁用动画或是由Windows设置触发?