Tag: 事件

在封闭事件中的“e.Cancel”

使用FormClosing事件时,为什么代码e.Cancel = true; work,但是new CancelEventArgs().Cancel = true; 不起作用? private void Form1_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; new CancelEventArgs().Cancel = true; }

WPF:Initialized和Loaded事件之间是什么?

我想在首次显示Window或Control时运行一些代码。 我不能使用Loaded,因为它可以不止一次。 我不能使用Initialized,因为这是由构造函数完成的。 介于两者之间的事件吗?

EventHandlers和C#Classes析构函数/ Dispose

我对C#Classes和它们的解构函数有点困惑。 我必须在构造函数中获取的类实例中使用一些事件处理程序: public Foo(IFooHandler handler) { handler.Load += Load; handler.Close += Close; } 当Foo类被销毁时,我需要取消订阅该事件。 我在那里或解构器中实现IDisposable和取消订阅吗? 我需要消耗那些事件,我不能以另一种方式去做。 对于其中一个类,我创建一个实例,检查进度,然后类实例超出范围。 对于另一个,它将保留在MainForm直到表单关闭。 第一个是我担心的,因为它可能仍然有对该事件处理程序的引用而且没有正确地去。 我不想泄漏内存。 何时以及如何取消订阅?

使用委托在C#中实现的观察者模式?

有一个问题已经回答是在C#中,是不是已经使用事件实现的观察者模式? 它询问观察者模式是否已在c#中使用事件实现。 虽然我得到了事件和观察者模式,但不是观察者模式真的只是委托和事件是进一步的实现吗?

可以使用哪些方法使线程等待事件然后继续执行?

我有一个线程运行,委托一些任务。 单个任务完成后,会发出一个事件,说明它已完成。 这些任务需要按特定顺序运行,需要等待上一个任务完成。 如何让线程等到收到“任务完成”事件? (除了设置标志然后循环轮询标志的明显的事件处理程序)

c#当屏幕/显示器关闭或打开电源时如何获取事件?

嗨,我一直在寻找,但我找不到答案。 我如何知道屏幕何时关闭或打开。 不是SystemEvents.PowerModeChanged。 我不知道如何检索显示/屏幕事件 private const int WM_POWERBROADCAST = 0x0218; private const int WM_SYSCOMMAND = 0x0112; private const int SC_SCREENSAVE = 0xF140; private const int SC_CLOSE = 0xF060; // dont know private const int SC_MONITORPOWER = 0xF170; private const int SC_MAXIMIZE = 0xF030; // dont know private const int MONITORON = -1; private const int […]

Winforms:有没有办法在我的应用程序中打开表单时得到通知?

我的主窗体上有一个“切换到窗口”按钮,我希望仅在其他窗口(在我的应用程序中)打开时启用。 每当打开或关闭表单时,我的主表单可以挂钩,是否会出现某种事件? (例如,也许某种方式来跟踪Application.OpenForms何时发生了变化?) (我知道如果此function在菜单项中,我可以在单击菜单时执行Application.OpenForms检查,但此按钮不在菜单中。)

公开UserControl的所有事件处理程序

我在WinForm UserControl中有一堆TextBoxes。 这些文本框中的每一个都有很少的事件处理程序,如On_Enter – 显示带有建议的ListBox,On_KeyUP – if Keys.Code == Keys.Enter – SelectNextControl()。 当我将该控件放在表单中时,这些事件都不会触发。 如何将所有这些事件公开给包含的表单? 如何使UserControl的事件启动该UserControl的事件处理程序?

如何在VB.NET中使用C#编写的以下事件/ delgates?

我在我的ASP.NET网络应用程序中使用JdSoft的APNS-Sharp库。 该库是用C#编写的,并广泛使用委托函数和事件来进行线程处理。 我的应用程序是用VB.NET编写的,我对如何翻译以下示例代码(C#)感到困惑: …. //Wireup the events service.Error += new FeedbackService.OnError(service_Error); …. } static void service_Error(object sender, Exception ex) { Console.WriteLine(…); } 以下是FeedbackService类的相关成员: public delegate void OnError(object sender, Exception ex); public event OnError Error; 基本上,我试图弄清楚如何将函数(如service_Error)附加到VB.NET中的事件(如Error)。 我不清楚+ =语法在这个上下文中意味着什么,VisualStudio说我的VB.NET代码由于某种原因无法直接访问’Error’事件。 谢谢!

连接事件处理程序的这两种语法有什么区别?

可能重复: 在C#中附加事件处理程序的两种不同方式是否存在实际差异? 我已经看到很多代码看起来像这样: foo.Drop += new DragEventHandler(fooHandler); 但在过去,我总是这样做: foo.Drop += fooHandler; 这两种语法之间有区别吗? 如果是这样,那么做到这一点有什么好处吗?