在 Winforms Host 中托管 DataGridView 时事件不会触发

发布于 2024-12-10 12:51:15 字数 167 浏览 1 评论 0原文

我正在尝试在 WPF 用户控件中托管 Datagridview。 datagridview 添加到构造函数中的 winformshost 中,并连接了 Enter 和 Leave 事件。 Enter 事件在网格第一次获得焦点时触发,但随后不会触发,并且 left 事件永远不会触发。

有什么想法吗? 谢谢

Im trying to host a Datagridview in a WPF usercontrol. The datagridview is added to the winformshost in the constructor and the Enter and Leave events wired up.
The Enter event fires the first time the grid gets focus but not subsequently and the leave event is never fired.

Any ideas?
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谈场末日恋爱 2024-12-17 12:51:15

MSDN 说:

当以下焦点发生变化时,不会引发 Enter 和 Leave 事件
发生:

  • 从 WindowsFormsHost 控件的内部到外部。

  • 从 WindowsFormsHost 控件的外部到内部。

  • 在 WindowsFormsHost 控件外部。

  • 从 WindowsFormsHost 控件中托管的 Windows 窗体控件到同一 WindowsFormsHost 中托管的 ElementHost 控件。

因此,如果您希望触发离开和输入事件,则必须离开同一 WindowsFormsHost 中的另一个控件。这只能通过创建包含 datagridview 和另一个控件的用户控件来实现。

虽然感觉像是黑客。如果可以的话,就接受它不受支持的事实。

MSDN says:

Enter and Leave events are not raised when the following focus changes
occur:

  • From inside to outside a WindowsFormsHost control.

  • From outside to inside a WindowsFormsHost control.

  • Outside a WindowsFormsHost control.

  • From a Windows Forms control hosted in a WindowsFormsHost control to an ElementHost control hosted inside the same WindowsFormsHost.

So if you want the leave and enter events to fire you'd have to leave to another control in the same WindowsFormsHost. This would only be possible by creating a usercontrol containing the datagridview and another control.

Feels like a hack though. If you can, just live with the fact that it's not supported.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文