【问题标题】:Events not firing when hosting DataGridView in Winforms Host在 Winforms 主机中托管 DataGridView 时未触发事件
【发布时间】:2011-10-19 15:16:39
【问题描述】:

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

有什么想法吗? 谢谢

【问题讨论】:

    标签: c# wpf winforms datagridview winforms-interop


    【解决方案1】:

    MSDN 说:

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

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

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

    • 在 WindowsFormsHost 控件之外。

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

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

    虽然感觉像个黑客。如果可以,请忍受它不受支持的事实。

    【讨论】:

    • 现在为什么我找不到!我已经通过触发 winforms 主机的“GotFocus”事件来绕过它,因为 datagridview 是唯一的控件并且占用了 100% 的空间。我不需要处理请假事件。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多