仅删除 vb.net 中的一个特定事件处理程序

2024-02-15

我正在编写一个小型 2D 引擎,使用 Lua 来控制它。过去一段时间我一直在 Lua 和 VB.net 之间设置事件。我意识到,问题是我似乎无法删除那些搞砸了很多事情的事件(因为它们在应该完成的时候被调用)。为了解决这个问题,我想添加某种方法来删除特定的事件处理程序。

我知道如何添加事件处理程序:

AddHandler Button1.Click, AddressOf Button1Clicked

但考虑到这一点,他们是否有办法删除 VB.net 中的特定事件处理程序?

Thanks!

EDIT

抱歉,我没有很好地解释这一点:

如果我有这个:

public sub setupevent(byval func as LuaFunction)
    AddHandler Me.event_mouseup, Sub(x As Integer, y As Integer)
        func.Call(x, y)
    End Sub
end sub

(Somewhere else)

setupevent(someLuaFunction)
setupevent(someOtherLuaFunction)
setupevent(JustAnotherLuaFunction)

有没有一种方法可以即时删除其中一个事件连接?


只需使用以下语句:

RemoveHandler Button1.Click, AddressOf Button1Clicked

请记住,可以多次注册 EventHandler。如果是这样,您将按照注册处理程序的频率接收该事件。因此,删除处理程序只会删除一项注册,并且您仍然会收到按钮事件。

Edit:
顺便说一句:您的编辑中的示例看起来不像标准事件处理程序(发送者作为对象,e作为EventArgs)
一般来说,您可以使用以下方法添加和删除句柄:

Public Sub FirstHandler(sender As object, e As EventArgs)
 ' …
End Sub

Public Sub SecondHandler(sender As object, e As EventArgs)
 ' …
End Sub

某处:

AddHandler Button1.Click, AddressOf FirstHandler
AddHandler Button1.Click, AddressOf SecondHandler
RemoveHandler Button1.Click, AddressOf FirstHandler
' Only SecondHandler subscribed now

您使用 lambda 表达式作为 EventHandler,因此您缺乏其特定地址来删除它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅删除 vb.net 中的一个特定事件处理程序 的相关文章

  • 如何在 Visual Basic DLL 和 C++ DLL 之间创建隔离/免注册 COM?

    我必须在 C DLL 中使用 VB COM DLL 我弄清楚了如何从 C DLL 访问 VB COM DLL 并且它可以工作 现在我遇到了一个问题 我必须使用隔离的 COM 免注册 COM 因为我无法在必须使用它的每台 PC 上注册 DLL
  • 为单个列表注册事件处理程序

    我有一个共享点事件处理程序 我想为单个列表激活它 而不是站点中的所有列表 我该怎么办 得到答案了 我们需要运行这段代码 也许在控制台应用程序中 不过 我仍然不知道如何在添加事件处理程序后将其删除 string siteUrl Console
  • Exchange 上公用文件夹上的 ItemAdd 事件

    我在将事件处理程序附加到ItemAdd公共文件夹的事件 问题是事件处理程序在几次后停止被调用 成功调用 代码很简单 我有一个ThisAddIn类创建一个对象 该对象又将一个函数附加到ItemAdd其构造函数中的事件 该函数只是弹出一个消息框
  • 为什么在 C# 中成员初始值设定项中不允许这样做,但在 VB.Net Me 中允许

    我正在将 VB Net 应用程序转换为 C 并注意到在 VB Net 代码中 有一个私有成员变量 它是使用Me像这样 Private m ClassA As New MyCollection Of ClassA Me 当我将其转换为 C 代
  • 将Access数据库中存储的图片加载到VB.NET程序中

    我有一个通过数据源与 VB 项目链接的 Access 数据库 在其中一个表的数据库中 我有一个 OLE 对象字段 我在此字段中保存了 BMP 格式和 JPG 格式的图片 我遇到的问题是将这张图像加载到我的应用程序中 这就是我希望能够做到的
  • VB SQL 语句未选择正确的行

    我试图使用 SELECT 语句在我的数据库中 选择 一个人 但它没有选择正确的人 我也不确定为什么 我正在使用访问数据库 数据库连接代码 Imports System Data OleDb Module Database Connectio
  • .NET 图形重影

    我正在为我们正在开发的新应用程序制作一个示例 GUI 我已经决定了语言 但我可以使用任何第 3 方 DLL 或插件或任何我需要的东西 以使 GUI 尽可能无缝地工作 他们希望它非常像 mac ubuntu vista Windows 7 所
  • 检测默认事件处理

    是否可以检测特定 DOM 事件是否绑定了任何事件处理程序 包括浏览器默认事件处理 在 Firefox 的 Greasemonkey 代码中 EcmaScript 5 1 严格模式 https developer mozilla org en
  • 多个事件处理程序触发,为什么?

    我很难解决这个问题 我已经呆了三个小时了 但我仍然不明白为什么会这样 这是代码 private void Catagory SelectionChanged object sender SelectionChangedEventArgs e
  • 如何在 Windows CE 中使用 VB.Net 访问条码扫描仪

    最近我被要求开发一个应用程序摩托罗拉 MK4000 http www motorola com Business US EN Business Product and Services Micro Kiosks Micro Kiosks M
  • 如何使用 VB.NET 打开受密码保护的共享网络文件夹?

    我需要在网络上打开受密码保护的共享文件夹才能访问 Access 97 数据库 如何打开文件夹并输入密码 在这里找到http www mredkj com vbnet vbnetmapdrive html http www mredkj co
  • 项目:为了评估索引属性,该属性必须经过限定,并且参数必须由用户显式提供。

    我创建了多个组合框 从中我从创建的存储过程中提取了每个组合框的数据 所有这些框一直工作到今天早些时候 其中 2 个组合框停止工作 检查行的 立即窗口 和列 我得到了列的结果 但是当我检查列时 例如 dsContactTitles Table
  • 插入具有只读主键列的表

    我正在使用一个使用 sql server 数据库的应用程序 我试图在表中插入一行 如下所示 该表有一个主键 prodNum 这是自动生成的密钥 当我尝试向表中插入一行时 如下所示 在行中intResult oSglProdTableAdap
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • 将签名位图转换为签名字符串(很奇怪的一个)

    基本上我需要将位图图像转换为字符串 但这不是常见的 困境在于该字符串由两部分组成 1 积分 2 线路 我需要将图像转换为由 分隔的两个部分 我得到的一个例子是 221A 221A270A270A25032503200720071716171
  • 选项卡索引不适用于面板中的控件?

    我有一个 vb net Windows 窗体 其中包含大约 15 个组合框和 15 个文本框 以及其他几个控件 所有这些TextBoxes and ComboBoxes位于面板中 原因是我需要根据用户选择 输入的内容来调整控件的可见属性 因
  • 如何在VB函数中添加可选参数/默认值参数?

    如何在 Visual Basic 中创建一个包含可选参数的方法 Use the Optional关键字并提供默认值 可选参数必须是最后定义的参数 以避免创建不明确的函数签名 Sub MyMethod ByVal Param1 As Stri
  • 如何从基类捕获点击项目(位于模板中)的事件?

    我有一个基础网格
  • 如何检查主音量是否静音

    如何在 Windows 7 操作系统中检查主音量是否静音我有静音或取消静音的代码 IE Public Const APPCOMMAND VOLUME MUTE As Integer H80000 Public Const APPCOMMAN
  • VB.NET 中的类型比较

    如何比较 VB NET 中的类型数据类型 我的代码 Private Function Equal ByVal parameter As String ByVal paramenterName As String ByVal dataType

随机推荐

  • UITableView 在视图出现之前重置其背景颜色

    我正在使用可能有点奇特的方式来初始化我的 UI 组件 我以编程方式创建它们 其中有一个 UITableView 实例 我在初始化时立即设置其背景颜色 如下所示 class MyViewController UIViewController
  • 如何在 sqlalchemy 中比较日期?

    我有以下简单的设置 其中 fromDate 和 toDate 是格式为 YYYY MM DD 的字符串 class SomeType Base date Column DateTime def findAll fromDate toDate
  • MongoDB C# foreach BsonElement

    我有一个 C 类 我实例化并使用它在集合中执行 CRUD 操作 public class Property BsonId public long id get set BsonElement address line public stri
  • 无法让 rspec、spork 和调试器发挥良好作用

    Given I am a dumb programmer and I am using rspec and I am using spork and I want to debug mmm let s saaay a spec for Ph
  • JPA 中的引用完整性约束违规错误

    我正在尝试解析网络请求并将其保存到数据库 我有 3 个模型 第一个节点是 virtualDocument 这是uniq表 根据请求url VirtualRequest 表包含所有请求主体 HttpHeaderList 表根据其 virtua
  • 原始 Win32 中的 Rich Edit 控件

    Rich Edit Controls 的文档真的像看起来那样糟糕 错误吗 现在 我正在手动调用 LoadLibrary riched20 dll 以便显示 Rich Edit 控件 Rich Edit 的文档在使用 Rich Edit 控件
  • 下拉列表中页面加载时已选择的选项,也可更改[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 预选择下拉选项 https stackoverflow com questions 3030604 php pre select drop down option 我的 php 项目中有一种情
  • 是否可以将“plt.yticks”放在水平条之间?

    我试图将价值放入plt yticks酒吧之间 不幸的是 我不知道该怎么做 有可能吗 如果有的话 有人可以给一些提示吗 import pandas as pd import numpy as np import matplotlib pypl
  • 从信号图像(RGB)中去除背景“噪音”

    I have some signal images 正如您所看到的 其中一些包含颜色信号 一些只是灰色 黑色信号 我的任务是提取白色背景的纯信号仅有的 这意味着我需要删除图像中除信号之外的所有内容 我检查了虚线 点线 实线 顶部和底部 具有
  • 当我两次启动闹钟时会发生什么?

    我正在克服困难 当然 这并不那么复杂 以避免两次启动警报 基本代码如下 AlarmManager mgr AlarmManager getSystemService Context ALARM SERVICE Intent i new In
  • ElasticSearch 服务启动但无法访问并且不执行任何日志记录

    Azure 中 Linux Ubuntu 16 04 3 VM 上的 ElasticSearch 6 2 2 它一直运行良好 但几天前我重新启动机器后 我根本无法启动 ElasticSearch 服务 问题已在这里分享和解决 Elastic
  • 更改相关产品标题在 WooCommerce 中添加产品名称

    我有这段代码 试图将 相关产品 翻译成 这些产品与产品名称搭配得很好 这是我的代码 add filter gettext change related products title 10 3 function change related
  • 在编译时将 this 指针和类方法的参数传递给本地 lambda 函数

    假设您有一个场景 当您想要创建一个constexprlambda 在编译时计算某些内容的方法中 struct A int a constexpr A int a a a constexpr auto operator const A rhs
  • “if-then-else”(总是)可以被函数调用替换吗?

    这个问题主要是出于对 PL 如何工作的好奇 实际上我是在查看 SML 时想到的 SML 与 Haskell 的不同之处在于前者使用按值调用 但我的问题是关于 Haskell 的 Haskell 据我了解 具有 按需调用 语义 这是否意味着如
  • 快速的射弹并不总是能击中

    因此 对于我的游戏 有一个快速移动的子弹对象 其精灵大小为 5x5 大约 以大约 30 的速度移动 需要撞击厚度仅为 5 像素左右的相对较薄的 Enemy 物体 子弹以一定的固定距离间隔穿过敌人而不会发生碰撞 I think这是因为子弹移动
  • DataMan iPhone 应用程序如何在后台工作

    AppStore 上的 DataMan 应用程序 DataMan Lite 是该应用程序的免费版本 有助于监控您的数据使用情况 http www iphonelife com blog 2686 monitor your data usag
  • matlab如何求解大型、对称和稀疏线性系统

    也就是说 当我这样做时A b对于非常大 对称且稀疏的 A matlab 使用什么算法 如果矩阵是稀疏且对称正定的 但有very窄带 然后使用专门的带解算器 大多数矩阵没有足够窄的带来触发这种情况 通常 它会在样条工具箱中提供一维样条 二维问
  • 评估 MySQL 中的表达式

    我有一个包含 a b expr 列的表 expr 是其他列的表达式 例如表包含 a b expr 2 5 a b 3 4 a b 3 我喜欢简单地运行一个查询并获得流动的结果 a b expr 2 5 7 3 4 15 我在文档中搜索函数
  • SQL在同一字段中搜索多个值

    我正在构建一个简单的search算法 我想打破我的带空格的字符串 并在其上搜索我的数据库 如下所示 search Sony TV with FullHD support search explode search SELECT name F
  • 仅删除 vb.net 中的一个特定事件处理程序

    我正在编写一个小型 2D 引擎 使用 Lua 来控制它 过去一段时间我一直在 Lua 和 VB net 之间设置事件 我意识到 问题是我似乎无法删除那些搞砸了很多事情的事件 因为它们在应该完成的时候被调用 为了解决这个问题 我想添加某种方法