Tag: 事件处理

-event-只能出现在+ =或 – =的左侧

我在一个循环中有一个事件。 我试图阻止将同一方法多次添加到事件中。 我已经实现了add和remove访问器。 但是,我得到一个错误说明: ItemsProcessed can only appear on the left hand side of += or -= 当我试着打电话给他们时,即使是在同一个class级里。 ItemsProcessed(this, new EventArgs()); // Produces error public event EventHandler ItemsProcessed { add { ItemsProcessed -= value; ItemsProcessed += value; } remove { ItemsProcessed -= value; } }

什么事件在DataGridViewCell中的combobox中捕获了值的变化?

我想在DataGridView单元格中的ComboBox中更改值时处理该事件。 有CellValueChanged事件,但是在我点击DataGridView其他地方之前,该事件才会触发。 SelectedValueChanged新值后,会立即触发一个简单的ComboBox SelectedValueChanged 。 如何将监听器添加到单元格内的combobox中?

在C#中将事件从一个表单传播到另一个表单

如何单击一个表单中的按钮并以另一种forms更新TextBox中的文本?

如何在c#中订阅其他类的事件?

一个简单的场景:一个引发事件的自定义类。 我希望在表单中使用此事件并对其做出反应。 我怎么做? 代码示例,请! 请注意,表单和自定义类是单独的类。

如何取消订阅使用lambda表达式的事件?

我有以下代码让GUI响应集合中的更改。 myObservableCollection.CollectionChanged += ((sender, e) => UpdateMyUI()); 首先,这是一个很好的方法吗? 第二:取消订阅此活动的代码是什么? 它是相同的但是 – =(然后又是完整的匿名方法)?

处理Windows应用程序的结束过程

是否可以在同一个Windows应用程序本身内捕获Windows应用程序的任务管理器结束进程? 我正在使用C#2.0 win应用程序,并且我希望在结束进程发生时进行一些数据库处理(在数据库中将标志从“Y”更改为“N”)。

带有事件处理程序的asp.net动态按钮

我在这里有一个小问题,动态生成按钮及其在asp.net中的事件处理程序。 我生成一个灵活的表,其中包含特殊用户的附加按钮。 按钮将动态生成,工作正常。 但我不能让事件处理程序工作。 以下是我的代码中的一些部分:构建按钮(在自己的函数中)。 … Button ButtonChange = new Button(); ButtonChange.Text = “Change”; ButtonChange.ID = “change_” + i.ToString(); ButtonChange.Font.Size = FontUnit.Point(7); ButtonChange.ControlStyle.CssClass = “button”; ButtonChange.Click += new EventHandler(test); … 和 void test(object sender, EventArgs e) { // Do some stuff } 我的Page_Load是空的。 但是,如果我点击按钮,程序将不会跳转到测试。 出了什么问题? 编辑!!! 问题是我一开始不知道从sql查询中获得了多少行。 对于每一行,我将添加删除和更改按钮。 我在我的程序中调用了一个将结果构建为表的方法。 在这个方法中,我检查当前用户是否是AdminUser,如果是,我将调用buildAdminButtons函数。 在这里,我为每一行创建一个新列中的按钮。 我怎么能在OnLoad中得到这个? private void buildAdminButtons(TableRow […]

Registry Watcher C#

我是WMI的新手,我需要在C#服务中实现RegistryValueChangeEvent 。 我需要一个事件处理程序,每次更改一组注册表值时都会触发该事件处理程序。 我想要的行为类似于FileSystemWatcher类的Changed事件,但是对于注册表值。 如果我可以使用其他一些技术来完成相同的任务,我也会很感激。 我的最低要求是它比我现在的解决方案更好:每20秒轮询一次,并将注册表值与最后结果进行比较。 请在答案中提供示例代码。 如果我只能看一个注册表值的示例,那就没问题了。 我需要一个.Net 2.0的解决方案 谢谢。

如何将事件传递给方法?

我想创建一个方法,将事件作为参数,并向其添加eventHandler以正确处理它。 像这样: 我有两个事件: public event EventHandler Click; public event EventHandler Click2; 现在我想将一个特定事件传递给我的方法(伪代码): public AttachToHandleEvent(EventHandler MyEvent) { MyEvent += Item_Click; } private void Item_Click(object sender, EventArgs e) { MessageBox.Show(“lalala”); } ToolStripMenuItem tool = new ToolStripMenuItem(); AttachToHandleEvent(tool.Click); 可能吗? 我注意到这段代码工作正常,并返回到我的项目,并注意到当我传递在我的类中声明的事件时,它可以工作,但是当我从其他类传递事件时,它仍然无效。 我得到的是这个错误: 事件’System.Windows.Forms.ToolStripItem.Click’只能出现在+ =或 – =的左侧

使用匿名委托进行事件处理时的垃圾收集

UPDATE 我已将这里的各种答案结合到一个新问题的“确定”答案中。 原始问题 在我的代码中,我有一个事件发布者,它在应用程序的整个生命周期中都存在(这里简化为基本要素): public class Publisher { //ValueEventArgs inherits from EventArgs public event EventHandler<ValueEventArgs> EnabledChanged; } 因为这个发布者可以在所有地方使用,所以我非常满意自己创建这个小助手类以避免在所有订阅者中重写处理代码: public static class Linker { public static void Link(Publisher publisher, Control subscriber) { publisher.EnabledChanged += (s, e) => subscriber.Enabled = e.Value; } //(Non-lambda version, if you’re not comfortable with lambdas) public static void Link(Publisher publisher, Control subscriber) […]