gpt4 book ai didi

c# - OnCommand 与 OnClick

转载 作者:行者123 更新时间:2023-11-30 19:23:59 26 4
gpt4 key购买 nike

我在对我的项目 (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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com