Winforms 订阅自己的事件

2024-01-14

我看到开发人员在 WinForms 中做的一件常见的事情是表单/控件订阅自己的事件,这样你就可以得到

this.Load += new System.EventHandler(this.WelcomeQuickViewWF_Load);
this.Activated += new System.EventHandler(this.WelcomeQuickViewWF_Activated);

而不是

protected override void OnActivated(EventArgs e)
{
}

现在我知道第二种方法更面向对象,第一种方法是事件驱动的,我倾向于重构以覆盖 - 有什么理由不这样做?我不想做的是做出一些并不真正需要的改变,纯粹是一种审美选择。


通过订阅您自己的活动,您放弃了对何时进行的控制your当事件有其他订阅者时,将调用代码。通过重写事件引发方法,您可以完全控制何时调用代码。您可以在通知订阅者之前或之后调用它。您的代码也不可能因可取消的事件而被取消。

如果该方法是可重写的,请这样做。否则请注册,因为您别无选择。

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

Winforms 订阅自己的事件 的相关文章

  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • 显示异常时的自定义错误消息:从客户端检测到潜在危险的 Request.Form 值

    我在我的 Web 应用程序中使用 ASP NET 的登录控件 当发生此异常时 我想在标签上显示一种有趣的错误类型System Web HttpRequestValidationException A potentially dangerou
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • strcmp 给出分段错误[重复]

    这个问题在这里已经有答案了 这是我的代码给出分段错误 include
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 我在在线程序挑战编译器中遇到演示错误

    include
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • 在 Uvicorn 中与多个工作线程一起使用多重处理(线程锁)

    我正在使用通过 uvicorn 提供的 FastAPI 构建一个 API 该 API 具有使用 python 多处理库的端点 端点为 CPU 密集型任务生成多个进程以并行执行它们 以下是高级代码逻辑概述 import multiproces
  • 我们如何以恒定复杂度或 O(1) 交换 2 个数组?

    我们如何以恒定的复杂度交换 2 个数组或O 1 我们有办法做到这一点吗 我尝试过使用指针 但出现错误 此外 这不会有帮助 因为它只是交换指针而不是数组 include
  • 将 PEM 转换为 PPK 文件格式

    有没有办法将 PEM 文件转换为 PPK 文件 您可能会猜到 Amazon EC2 为我提供了一个 PEM 文件 我需要使用 PPK 格式进行 SSH 连接 Use PuTTYGen http www chiark greenend org
  • Flask-Admin 自定义日期时间视图

    使用flask admin时 日期时间字段的列表视图如下所示 2014 02 22 13 30 43 我想知道是否可以更改此默认视图 如下所示 2014 02 22 或 2014 02 22 13 30 thanks 是的 您可以设置col
  • 如何通过代码发布 SSDT 数据库

    We have SQLServer01 Publish xml当我双击该文件并发布时 它将数据库发布到 sqlServer01 我想问我们可以通过代码以某种方式发布此配置文件吗 SSDT 似乎很喜欢 DacPac 来做这种事情 有一个Dac
  • 如何将 PNG 从 RESOURCES 加载到 CImage 中

    根据此文档LoadFromResource https learn microsoft com en gb cpp atl mfc shared reference cimage class a nameloadfromresourcea
  • 使字符串对 URL 友好(例如:将 Montréal 转换为蒙特利尔)

    我正在编写一个需要友好 URL 的 Web 应用程序 但我不确定如何处理非 7 位 ASCII 字符 我也不想用 URL 编码的实体替换重音字符 是否有允许这种转换的 C 方法 或者我是否需要实际映射出我想要处理的每个案例 我不知道如何在
  • EntityFramework 使用错误的表名

    当我尝试从 Bieren 表获取数据时 我的代码给出了 EntityCommandExecutionException 异常消息表明它找不到 dbo Biers 这很明显 因为它被称为 dbo Bieren 我只需重命名数据库中的表即可轻松
  • 获取所有用户并用vue js显示

    我对 Vue js 非常陌生 现在我尝试通过 ajax 调用获取表中的所有用户 我得到的用户没有任何问题 但是当我尝试使用新数据设置 data user 时 我收到一条错误 指出属性或方法用户未定义 这是我的用户列表组件
  • Ajax 和 PHP 调试

    构建一个脚本 一旦在日期选择器日历中选择了日期 它就会使用 ajax 在 php 脚本中发布所选日期 在该 ajax 调用成功后 它使用另一个 ajax 调用将相同的选定日期发布到另一个 php 脚本并将其显示在页面中 做了一些研究 这似乎
  • 保护对微光应用程序的访问

    这是我之前问题的后续问题 可以看到闪亮的微光应用程序的代码 https stackoverflow com questions 14671609 is is possible to see the code for shiny glimme
  • 如何编译mod_proxy_uwsgi或mod_uwsgi?

    所以我尝试在 apache2 后面使用 uwsgi 但我是在 CentOS 6 机器上这样做的 我习惯使用基于 Debian Ubuntu 的系统作为上下文 I used pip install uwsgi并遵循使用 Django 应用程序
  • 数据结构:插入、删除、包含、获取随机元素,全部都是 O(1)

    我在面试时被问到这个问题 你会如何回答 设计一个数据结构 在 O 1 时间内提供以下操作 insert remove contains 获取随机元素 考虑一个由哈希表 H 和数组 A 组成的数据结构 哈希表键是数据结构中的元素 值是它们在数
  • 我应该直接从视图 yii2 调用模型吗

    我有点困惑 因为在这里 他们直接调用模型 因此不通过控制器传递它 http www yiiframework com doc 2 0 guide input forms html http www yiiframework com doc
  • 编译器错误,还是非标准代码? - lambda 中的可变参数模板捕获

    我有以下 C 11 代码 template
  • 获得一个粘性标题“向上推”,就像在 Instagram 的 iPhone 应用程序中使用 CSS 和 jQuery

    Instagram 应用程序有一个很好的粘性标题 可以将当前标题推到新标题的位置 我找到了一个关于如何在 Android 上本地执行此操作的很棒的教程 但我希望使用 JavaScript 和 CSS 来执行此操作 我能够将我的标题换成新的
  • 在哪里可以找到 Windows GUI 标准? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我听说他们有标准的 GUI 指南 但我似乎找不到工作链接 谢谢 是不是Windows 用户体验交互指南
  • 保留组合条形图中缺失列的位置

    一个非常常见的问题是当 ggplot 中缺少列时保留条形的宽度 例如1 https stackoverflow com questions 11020437 consistent width for geom bar in the even
  • 使用 ajax 处理长时间的服务器端操作?

    I ve a 特别长时间操作将在以下情况下运行 用户按下界面上的按钮 我想知道什么是最好的 方式将此信息返回给客户端 该操作正在填充事实表中多年的数据 这大约需要 20 分钟 所以我不打算将界面设置为 同步 即使服务器端产生大量数据 我仍然
  • Winforms 订阅自己的事件

    我看到开发人员在 WinForms 中做的一件常见的事情是表单 控件订阅自己的事件 这样你就可以得到 this Load new System EventHandler this WelcomeQuickViewWF Load this A