问题标签 [events]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1969 浏览

如何在下拉“选项”之间向下或向上键盘?

我有一个自定义构建的基于 ajax [div] 的动态下拉列表。

我有一个 [输入] 框;onkeyup, 运行 Ajax 搜索,该搜索在divs 中返回结果并在使用innerHTML. 这些divs 都有亮点onmouseover,因此,典型的成功搜索会产生以下结构(请原谅半码):

有用。

但是,我错过了常规 HTML 元素背后的重要功能。我无法在“选项”之间向下或向上键盘。

我知道 javascript 处理键盘事件,但是;我一直没能找到一个好的向导。(当然,后续问题最终会是:我可以<ENTER>用来触发那个onclick事件吗?)

0 投票
6 回答
32841 浏览

如何使事件回调进入我的 win 表单线程安全?

当您从表单中订阅对象上的事件时,您实际上是将回调方法的控制权交给了事件源。您不知道该事件源是否会选择在不同的线程上触发事件。

问题是,当调用回调时,您不能假设可以在表单上创建更新控件,因为有时如果在与运行表单的线程不同的线程上调用事件回调,这些控件会引发异常。

0 投票
2 回答
4201 浏览

Column Tree Model doesn't expand node after EXPAND_NO_CHILDREN event

I am displaying a list of items using a SAP ABAP column tree model, basically a tree of folder and files, with columns.

I want to load the sub-nodes of folders dynamically, so I'm using the EXPAND_NO_CHILDREN event which is firing correctly.

Unfortunately, after I add the new nodes and items to the tree, the folder is automatically collapsing again, requiring a second click to view the sub-nodes. Do I need to call a method when handling the event so that the folder stays open, or am I doing something else wrong?

0 投票
5 回答
12303 浏览

为 .NET TextBox 捕获 MouseDown 事件

是否有任何方法可以从 .NET 2.0 TextBox 控件中捕获 MouseDown?我知道继承的 Control 类有事件,但它没有在 TextBox 中公开。有没有办法覆盖事件处理程序?

我还尝试了 OpenNETCF TextBox2 控件,它确实暴露了 MouseDown 事件,但无论我做什么,它都不会触发处理程序。

有什么建议么?


你有什么样的疯狂移动设备,有鼠标?:)

是的,windows mobile 没有真正的鼠标,但您误认为 Windows Mobile .NET 不支持鼠标事件。屏幕上的单击或移动仍被视为“鼠标”事件。这样做是为了让代码可以轻松地从完整的 Windows 移植过来。这不是 Windows Mobile 特定的问题。Windows 上的 TextBox 控件也没有本机鼠标事件。在这种情况下,我只是碰巧使用了 Windows Mobile。

编辑:附带说明...由于 Windows Mobile 是由 WindowsCE 核心构建的,该核心通常用于嵌入式桌面系统和 Slim Terminal Services 客户端或“WinTerms”,它支持硬件鼠标并且已经使用了很长时间。大多数设备只是没有可以插入的端口。


根据 .Net Framework,支持 TextBox 上的 MouseDown 事件处理程序。当您尝试运行代码时会发生什么?

实际上,那只是因为它从“Control”继承它,就像所有其他 Form 控件一样。但是,它在 TextBox 类中被覆盖(并且我相信已更改为私有)。所以它不会出现在 Visual Studio 的 IntelliSense 中。

但是,您实际上可以编写代码:

它会编译并运行得很好,唯一的问题是当您点击 TextBox 控件时不会触发 textBox1_MouseDown() 。我认为这是因为事件在内部被覆盖。我什至不想在内部更改事件中发生的事情,我只想将我自己的事件处理程序添加到该事件中,这样我就可以像处理任何其他事件一样触发一些自定义代码。

0 投票
6 回答
1459 浏览

按下回车键时,onClick 不会仅通过一个输入触发

我在处理 Internet Explorer 7 中的事件时遇到问题。

当我有一个包含两个或更多 input[type=text]的表单并按 Enter 键时,事件按以下顺序发生:

  1. 提交按钮 ( onClick)
  2. 表格 ( onSubmit)

示例代码:

如果我只有一个 并且我按下回车键,则不会触发input[type=text]提交按钮事件。onClick示例代码:

0 投票
8 回答
64088 浏览

添加多个 window.onload 事件

在我的 ASP.NET 用户控件中,我将一些 JavaScript 添加到window.onload事件中:

我的问题是,如果onload事件中已经有某些东西,那么这会覆盖它。我将如何允许两个用户控件在onload事件中分别执行 JavaScript?

编辑:感谢有关第三方库的信息。我会记住他们的。

0 投票
4 回答
6621 浏览

在 NSTextView 中捕获关键事件的最佳方法?

我正在慢慢学习 Objective-C 和 Cocoa,到目前为止,我看到的在文本视图中捕获关键事件的唯一方法是使用委托,但是我很难找到有关如何实现这种解决方案的有用文档和示例。谁能指出我正确的方向或提供一些第一手帮助?

0 投票
6 回答
1566 浏览

Windows 窗体线程和事件 - ListBox 及时更新,但进度条出现巨大延迟

我们的团队正在创建一个新的招聘工作流程系统来替换旧的。我的任务是将旧数据迁移到新模式中。我决定通过创建一个小型 Windows 窗体项目来做到这一点,因为架构完全不同,直接的 TSQL 脚本不是一个合适的解决方案。

完成这项工作的主要密封类“ImportController”声明了以下委托事件:

主窗口使用新线程在该类中启动一个静态方法:

ImportProgressEvent 参数携带字符串消息、进度条的最大 int 值和当前进度 int 值。Windows 窗体订阅该事件:

并使用它自己的委托以这种方式响应事件:

最后更新进度条和列表框:

问题是 ListBox 似乎更新得很快,但进度条永远不会移动,直到批处理几乎完成?是什么赋予了 ?

0 投票
4 回答
1282 浏览

防止 TreeView 在 VB6 中触发事件?

在一些 VB6 代码中,我有一个 TreeView 的 Collapse 事件的处理程序:

每当树中的一个节点被折叠时调用,无论是由用户还是以编程方式。事实证明,通过一些迂回的执行,这个处理程序最终可能会告诉一个节点崩溃,从而导致无限递归。

我可以想出多种方法来给这只猫剥皮,但对我来说最简单的方法是告诉 TreeView 在一段时间内不要引发事件。不过,我找不到一个简单的电话让我这样做。有没有人成功地做到了这一点,或者我是否需要以其他方式跟踪状态,以便在递归事件出现时做出适当的响应?

0 投票
6 回答
30074 浏览

侦听另一个应用程序中的事件

假设我有两个用 C# 编写的应用程序。第一个是引发名为“OnEmailSent”的事件的第三方应用程序。

第二个是我编写的自定义应用程序,我想以某种方式订阅第一个应用程序的“OnEmailSent”。

有什么方法可以将第二个应用程序附加到第一个应用程序的实例以侦听“OnEmailSent”事件?


因此,为了进一步澄清,我的具体情况是我们有一个用 c# 编写的自定义第三方应用程序,它引发了一个“OnEmailSent”事件。我们可以使用反射器看到事件存在。

我们想要做的是在该组件发送电子邮件时执行一些其他操作。

我们能想到的最有效的方法是能够使用安德斯建议的某种形式的 IPC,并监听第三方组件引发的 OnEmailSent 事件。

因为该组件是用 C# 编写的,所以我们正在考虑编写另一个 C# 应用程序,该应用程序可以将自己附加到正在执行的进程中,并且当它检测到 OnEmailSent 事件已被引发时,它将执行它自己的事件处理代码。


我可能遗漏了一些东西,但根据我对远程处理工作原理的理解,需要有一个服务器来定义客户端可以订阅的某种合同。

我更多地考虑有人编写了一个独立的应用程序,例如 Outlook,它公开了我想从另一个应用程序订阅的事件。

我想我正在考虑的场景是 .net 调试器以及它如何附加到执行程序集以在运行时检查代码。