- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在对我的项目 (ASP.NET Web Forms) 进行一些研究时遇到了 2 种看起来相似的事件类型,OnCommand 和 OnClick。我已通读 MSDN 页面,但仍不清楚它们之间的区别。
OnCommand 与 OnClick 之间的区别是什么?我什么时候想使用哪个事件?
//编辑以指定应用类型
最佳答案
如果您发现文档有点不清楚,那是可以理解的。
OnClick
是一个比 OnCommand
更低级别的事件。您可以认为 OnClick
更像是一个物理事件,而 OnCommand
更像是一个逻辑事件,可以这么说。
当控件被点击时,它会收到一个 OnClick
事件,告诉控件已经发生了点击。作为响应,控件可能会做各种事情。如果控件与命令相关联,并且允许对事件进行默认处理,则系统将在这之后发生 OnCommand
事件。
(我不确定/不记得您对 WinForms 中默认处理的抑制有多少控制,但您当然可以在底层 Win32 编程层中控制它。)
OnCommand
事件可以通过点击以外的方式触发。例如,您可以使用键盘快捷键来激活控件,在这种情况下将不会有 OnClick
。
从所有这些中带回家的知识如下:
Never use OnClick when OnCommand will suffice.
如果您编写的程序使用OnClick
来触发业务逻辑 操作,那么您的程序将要求用户使用鼠标。有很多用户因残疾不能使用鼠标,有很多用户只是喜欢键盘而不是鼠标,还有很多设备甚至没有鼠标。
(在这些设备上,点击通常会通过触摸来模拟,但这并不能保证,无论如何,所有这些笨重的模拟从一开始就没有必要,添加它们的唯一原因是因为程序员一开始就粗心大意,他们做了一些愚蠢的事情,比如在 OnClick
而不是 OnCommand
上触发 Action 。)
如果您正在编写自己的控件,则可以使用 OnClick
。例如,如果您正在编写自己的编辑框控件,并且您希望用户能够单击控件内的某处以便将插入符号放置在该确切位置,那么这样做作为对OnClick
事件被触发。但请注意此操作仅供控件内部使用,它不会触发控件外部的任何操作。
关于c# - OnCommand 与 OnClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41821453/
我的问题是我有一个简单的 Minecraft 插件,我只想让它执行一个命令。我以前做过命令,所以步骤对我来说很清楚。我的plugin.yml 设置正确(服务器检测我添加的命令并显示它的帮助页面等),并
我有一个页面,其中列出了数据网格中的一堆项目。 每个项目都有一个对应的删除链接按钮,用于从列表中删除该项目。在我的事件处理程序中——项目被删除的地方——我检查该项目是否是列表中的最后一项。如果它是最后
我正在为 Minecraft 创建一个简单的插件,它可以切换命令并为目标玩家提供唯一的 UUID。然而,public boolean onCommand 方法声明它从未被使用过。 主类(Freeze.
我在对我的项目 (ASP.NET Web Forms) 进行一些研究时遇到了 2 种看起来相似的事件类型,OnCommand 和 OnClick。我已通读 MSDN 页面,但仍不清楚它们之间的区别。
在运行具有以下内容的 Chrome 扩展程序时,我收到错误“未捕获的类型错误:无法读取未定义的属性‘onCommand’”: list .json: { "name": "Test", "de
我正在尝试做一些看起来相当简单的事情。我有一个带有多个 LinkButtons 的用户控件。每个 LinkButton 都有 OnCommand、CommandName 和 CommandAr
为什么下面的代码会导致以下错误: System.Web.UI.WebControls.Button.OnCommand(System.Web.UI.WebControls.CommandEventAr
本文整理了Java中com.zsmartsystems.zigbee.zcl.clusters.ZclOnOffCluster.onCommand()方法的一些代码示例,展示了ZclOnOffClus
我正在尝试找到在 macOS 上将 NSMenuItem 与 SwiftUI onCommand 连接的最佳解决方案。 目前我正在做以下事情: 在 AppDelegate 中,我创建了一个虚拟函数,以
我已经阅读了数十篇有关此问题的帖子并尝试了所有这些,但没有运气,我不确定我错过了什么,这是 gridview 代码:
所以我现在正在尝试制作一个 Minecraft 插件,并且我已经制作了我的代码,其中大部分都是完美的,但是由于某种原因,一旦编写完成,我就会从 Eclipse 收到错误消息(标题) . 代码在这里找到
我试图从 bootstrap.js 文件调用 changePassword() 方法,但我不知道如何.. Bootstrap.js 位于项目文件夹的根目录,options.xul 位于 ./chrom
我有以下代码,在我正在开发的新扩展中: (.addListener js/chrome.alarms.onAlarm (fn [alarm] (.log js/console alarm))) (.a
我是一名优秀的程序员,十分优秀!