在 WPF 中的 WindowsFormsHost 控件中捕获键盘输入

发布于 2024-09-06 04:39:52 字数 383 浏览 5 评论 0原文

我在 WinForms 用户控件内有一个 ActiveX 控件。我的 WinForms 应用程序很喜欢它!

现在,转到 WPF,我在 WindowsFormsHost 控件中使用用户控件。效果很好...,但我想将此控件视为单个元素,以便用户可以在现有 WPF 控件上整齐地按 TAB 键,并且此用户控件不会“进入”它。即像所有其他控件一样将其视为单个控件。

我认为我需要的是捕获按键的能力,并且在事件处理程序中只需将焦点移动到序列中的下一个控件,但我似乎无法捕获任何键盘输入。我尝试过 WPF PreviewKey.. 事件等,但是一旦选项卡到达控件,它似乎停留在其中并且 WPF 事件被忽略。

我在许多 WPF 书籍和网络上找不到任何关于此的内容。有人能建议一种方法吗?

谢谢, 杰克。

I have an ActiveX control inside a WinForms user control. My WinForms app loves it!

Now, moving over to WPF, I use the user control in a WindowsFormsHost control. Works great..., but I want to treat this control as a single element so the user can neatly hit TAB over the existing WPF controls AND this user control NOT to 'go inside' it. i.e. just treat it as a single control like all the others.

I think what i need is the ability to trap the keys, and in the event handler simply move focus to the next control in the sequence, but I can't seem to trap any keyboard input. Ive tried the WPF PreviewKey.. events and the like, but once the tabbing gets to the control, it seems to stay inside it and WPF events are ignored.

I couldnt find anything on this in many WPF books and the net. Can anyone suggest a way ?

Thanks,
Jack.

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

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

发布评论

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

评论(1

無處可尋 2024-09-13 04:39:52

你不能通过在面板或窗口上按下预览鼠标(无论控件的父级是什么)来创建某种过滤器,这样面板会在用户控件之前捕获它,你应该将 e.handled 设置为true,如果用户控件引发了 Tab 事件,则继续推动焦点,直到获得另一个控件。 Preview 和 e.Handled=ture 应该可以解决问题。

Can't you create some sort of a filter by doing a preview mouse down on the panel or window (whatever is the parent of your controls), this way the panel will catch it before the user control and you should set e.handled to true, and if the user control raised the tab event, keep pushing the focus until you get another control. Preview and e.Handled=ture should solve the problem.

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