【问题标题】:Desktop Development : Remember Target After Losing Focus桌面开发:失去焦点后记住目标
【发布时间】:2010-10-24 21:36:56
【问题描述】:
是否可以从另一个程序获取焦点来响应事件,但是一旦处理了响应,就切换回之前的程序并将光标恢复到原来的位置?
这听起来像是一个奇怪的问题,但请按照以下思路考虑
- 用户正在程序 A 的文本框中输入内容。
-
程序 B 的窗口会弹出,用户按下几个按钮即可确认。
-
程序 B 将控制权返回给 程序 A 并恢复对文本框的选择。
如果有完整的 C# 解决方案,那就太好了,但这听起来可能比平时需要更多的努力。
有什么想法吗?
【问题讨论】:
标签:
c#
windows
desktop
desktop-application
【解决方案1】:
就个人而言,这样做很可能会导致用户在弹出窗口中选择不想要的值。例如,有人正在 Word 中打字。您的应用程序会弹出一个窗口,在该窗口中点击“Enter”会选择一个值……例如默认按钮。用户无意中在您的表单上“选择”了不正确的值。
Windows 本身就倾向于这样做,这很烦人。快速双击桌面快捷方式打开应用程序,然后在应用程序启动之前切换回(例如)电子邮件,将倾向于从聚焦的电子邮件窗口中移除焦点并将焦点放在刚刚打开的应用程序中,导致您的电子邮件文本或键盘敲击进入刚刚打开的窗口。
【解决方案2】:
根据我的经验,Windows 程序就是这样工作的。通常看起来他们没有这样做,因为用户通过鼠标单击返回焦点,这本身会重置焦点。如果它是一个 winforms 应用程序,您可能可以在表单级别处理失去焦点/获得焦点事件。