Tag: 事件处理

WPF按钮单击C#代码

我有一个按钮数组,它在运行时动态生成。 我在我的代码中有按钮单击function,但我找不到在代码中设置按钮的单击名称的方法。 所以, 什么是XAML的等效代码: 或者,我应该为“????”放置什么 在以下代码中: Button btn = new Button() btn.Name = “btn1”; btn.???? = “btn1_Click”;

C#:调用按钮事件处理程序方法而不实际单击按钮

我的aspx文件中有一个名为btnTest的按钮。 .cs文件有一个函数,单击该按钮时会调用该函数。 btnTest_Click(object sender, EventArgs e) 如何从我的代码中调用此函数(即没有实际单击按钮)?

Action 无法转换为EventHandler?

我正在连接一个事件以使用一个lambda,它需要在触发后自行移除。 我无法通过将lambda内联到+ =事件(没有用于删除事件的可访问变量)来做到这一点所以我设置了一个Action变量并将lambda移动到那里。 主要错误是它无法将Action转换为EventHandler。 我认为lambda表达式可以隐式转换为事件处理程序,为什么这不起作用?

避免在C#中重复的事件订阅

您如何建议避免重复事件订阅的最佳方法? 如果这行代码在两个地方执行,则事件将运行两次。 我试图避免第三方事件订阅两次。 theOBject.TheEvent += RunMyCode; 在我的委托制定者中,我可以有效地运行这个…… theOBject.TheEvent -= RunMyCode; theOBject.TheEvent += RunMyCode; 但这是最好的方法吗?

在什么情况下从必要的事件中分离?

我不确定我是否完全清楚附加对象中的事件的含义。 这是我目前的理解,正确或精细: 1.不需要分离附加到本地类事件 例子: this.Closing += new System.ComponentModel.CancelEventHandler(MainWindow_Closing); public event EventHandler OnMyCustomEvent = delegate { }; 我假设当你的对象被处理或被垃圾收集时,这些函数会被释放并自动从事件中分离出来。 2.必须分离附加到不再需要的对象(= null;) 示例:附加到计时器的Elapsed事件,您只响应一次。 我假设您需要将Timer存储在本地变量中,以便在事件触发后分离Elapsed事件。 因此,在本地方法范围内声明计时器会导致泄漏: System.Timers.Timer myDataTimer = new System.Timers.Timer(1000); myDataTimer.Elapsed += new System.Timers.ElapsedEventHandler(myDataTimer_Elapsed); 3.将本地对象中的事件附加到您的class级不需要处理? 例如,如果您有一个ObservableCollection,您可以创建,监视并让它们死掉。 如果使用本地私有函数附加到CollectionChanged事件,当您的类被垃圾收集时,此函数是否会解除分配,导致ObservableCollection也被释放? 我确定我有停止使用对象并且无法从事件中分离的地方(例如,我制作的计时器示例),所以我正在寻找关于它是如何工作的更清楚的解释。

C#事件处理(与Java相比)

我目前正在使用delagates在C#中很难理解和实现事件。 我习惯了Java的做事方式: 为侦听器类型定义一个接口,该接口包含许多方法定义 如果我对侦听器中定义的所有事件不感兴趣,请为该接口定义适配器类以使事情更容易 在类中定义Add,Remove和Get []方法以引发事件 定义受保护的fire方法,以便在添加的侦听器列表中循环并调用正确的方法 这个我理解(并且喜欢!) – 我知道我可以在c#中完全相同,但似乎有一个新的(更好的?)系统用于c#。 阅读了无数的教程,解释了c#中代表和事件的使用后,我仍然无法真正了解正在发生的事情:S 简而言之,对于以下方法,我将如何在c#中实现事件系统: void computerStarted(Computer computer); void computerStopped(Computer computer); void computerReset(Computer computer); void computerError(Computer computer, Exception error); ^上面的方法取自我曾经制作的Java应用程序,我正在尝试移植到c#。 非常感谢!

如何为多个按钮创建事件处理程序?

在我的C#项目中,我正在创建一个Hangman游戏,其中包含一组按钮,其中包含从A到Z的字母。单击时所有这些按钮将执行相同的方法。 我不想一个一个地为它们中的每一个创建一个事件处理程序。 那么如何为所有这些按钮创建一个SINGLE事件处理程序呢?

如何在按Enter键时创建一个可以捕获所有点击的应用程序,但是在我的WinForm中也是如此?

我尝试开发一个应用程序谁做截图所有鼠标点击,当我点击键“输入”进行教程,但我不知道如何捕获这些事件他们在我的应用程序之外。 我怎么能这样做?

如何从VB.NET中的事件中获取实际的EventHandler委托实例?

在C#中,我可以这样做: EventHandler handler = this.SomeEvent; ……这会让我做,例如,做: Delegate[] attachedHandlers = handler.GetInvocationList(); 在VB.NET中,我似乎无法弄清楚如何做类似的事情。 这不起作用: Dim handler As EventHandler = Me.SomeEvent …由于以下错误: 公共事件SomeEvent(sender As Object,e As EventArgs)’是一个事件,不能直接调用。 使用’RaiseEvent’语句来引发事件。 但这也不起作用: Dim handler As EventHandler = AddressOf Me.SomeEvent …因为: ‘AddressOf’操作数必须是方法的名称(没有括号)。 那么如何从VB.NET中的事件中实际获取EventHandler呢? 立即想到的唯一想法是使用reflection,但这看起来非常荒谬。

检查控件是否在Click EventHandler上有事件

我想知道控件是否在Click事件上分配了一个方法。 Button b = new Button(); b.Click += (sender, e) => { }; /* What I want */ b.Click.Count // 1 我需要的东西至少可以告诉我控件是否有点击事件的某些方法。