Tag: 事件

AddEventHandler使用reflection

我有这段代码不起作用: public CartaoCidadao() { InitializeComponent(); object o = WebDAV.Classes.SCWatcher.LoadAssembly(); MethodInfo method = this.GetType().GetMethod(“Inserted”, BindingFlags.NonPublic | BindingFlags.Instance); EventInfo eventInfo = o.GetType().GetEvent(“CardInserted”); Type type = eventInfo.EventHandlerType; Delegate handler = Delegate.CreateDelegate(type, this , method); eventInfo.AddEventHandler(o, handler); } void Inserted(string readerName, string cardName) { System.Windows.Forms.MessageBox.Show(readerName); } Event CardInserted存在于另一个DLL文件中,对象“o”加载OK。 委托处理程序具有效果后的值。 我只能解雇这个事件。

为什么事件不能在派生类中以与C#中的基类相同的方式使用?

在下面的代码中,我想通过派生/子类化它来扩展类的行为,并使用基类的事件: public class A { public event EventHandler SomeEvent; public void someMethod() { if(SomeEvent != null) SomeEvent(this, someArgs); } } public class B : A { public void someOtherMethod() { if(SomeEvent != null) SomeEvent(this, someArgs); // << why is this not possible? //Error: The event 'SomeEvent' can only appear on the left hand side of […]

用于Process可执行文件的.NET事件

是否有任何方法可以注册在特定文件名的可执行文件启动时触发的事件? 我知道,当进程退出时,通过获取进程句柄并注册已退出的事件,可以轻松获取事件。 但是,当一个尚未运行的进程启动时,如何在不轮询所有正在运行的进程的情况下,如何通知您?

父控制鼠标使用子控件输入/离开事件

我有一个C#.NET 2.0 WinForms应用程序。 我的应用程序有一个控件,它是两个子控件的容器:标签和某种编辑控件。 您可以这样想,外框是父控件: + ——————————— + | [标签控制] [编辑控制] | + ——————————— + 我试图在鼠标进入或离开父控件时执行某些操作,但我不在乎鼠标是否移动到其中一个子控件中。 我想要一个标志来表示“鼠标在父或子中的某个位置”和“鼠标移动到父控件边界之外”。 我已尝试在父控件和两个子控件上处理MouseEnter和MouseLeave,但这意味着当鼠标移过控件时,操作会多次开始和结束。 换句话说,我明白了: Parent.OnMouseEnter(开始做某事) Parent.OnMouseLeave(停止) Child.OnMouseEnter(开始做某事) Child.OnMouseLeave(停止) Parent.OnMouseEnter(开始做某事) Parent.OnMouseLeave(停止) 中间的OnMouseLeave事件会导致一些不良影响,因为我正在做的事情开始然后停止。 我想避免这种情况。 我不想捕获鼠标,因为父控件需要鼠标移动,因为子控件需要鼠标事件,我想要菜单和其他快捷键才能工作。 有没有办法在.NET框架内执行此操作? 或者我需要使用Windows鼠标挂钩?